/* SPDX-License-Identifier: MIT
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use, copy,
 * modify, merge, publish, distribute, sublicense, and/or sell copies
 * of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 *
 * Copyright:
 *   2020      Evan Nemerson <evan@nemerson.com>
 *   2020      Himanshi Mathur <himanshi18037@iiitd.ac.in>
 */

#define SIMDE_TEST_X86_AVX512_INSN adds

#include <test/x86/avx512/test-avx512.h>
#include <simde/x86/avx512/set.h>
#include <simde/x86/avx512/adds.h>

static int
test_simde_mm_mask_adds_epi8 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const int8_t src[16];
    const simde__mmask16 k;
    const int8_t a[16];
    const int8_t b[16];
    const int8_t r[16];
  } test_vec[] = {
    { { -INT8_C(  31), -INT8_C(   5),  INT8_C(  46),  INT8_C(   1),  INT8_C(  19), -INT8_C(  53),  INT8_C(  28),  INT8_C(  66),
        -INT8_C(  30),  INT8_C( 100),  INT8_C(  35), -INT8_C(  33),  INT8_C(  39), -INT8_C(  73),  INT8_C(  19),  INT8_C(  92) },
      UINT16_C( 2426),
      { -INT8_C(  95),  INT8_C(  26), -INT8_C(  72),  INT8_C(  19),  INT8_C(  14),  INT8_C( 102),  INT8_C(  82), -INT8_C(   2),
        -INT8_C(  59), -INT8_C(  10),  INT8_C( 113),  INT8_C(  15),  INT8_C(  27),  INT8_C(  69), -INT8_C( 110),  INT8_C( 115) },
      {  INT8_C(  15),  INT8_C(  75),  INT8_C( 123), -INT8_C( 127), -INT8_C( 110),  INT8_C(  47),  INT8_C(  62), -INT8_C( 126),
         INT8_C(  41),  INT8_C(  26),  INT8_C(  55),  INT8_C(   3), -INT8_C( 110), -INT8_C(  34), -INT8_C(  49), -INT8_C(  55) },
      { -INT8_C(  31),  INT8_C( 101),  INT8_C(  46), -INT8_C( 108), -INT8_C(  96),      INT8_MAX,      INT8_MAX,  INT8_C(  66),
        -INT8_C(  18),  INT8_C( 100),  INT8_C(  35),  INT8_C(  18),  INT8_C(  39), -INT8_C(  73),  INT8_C(  19),  INT8_C(  92) } },
    { {  INT8_C( 118),  INT8_C(  85),  INT8_C(  76), -INT8_C(  47), -INT8_C(  19),  INT8_C(  81),  INT8_C(  94),  INT8_C(  77),
         INT8_C(  47), -INT8_C( 123), -INT8_C( 116), -INT8_C( 110), -INT8_C(  57),  INT8_C(  55), -INT8_C( 111), -INT8_C(   4) },
      UINT16_C(32116),
      { -INT8_C(  69),  INT8_C( 126),  INT8_C(  82), -INT8_C(  14), -INT8_C(  58),  INT8_C(  10),  INT8_C(  64),      INT8_MAX,
         INT8_C(  23), -INT8_C( 109),  INT8_C(  72), -INT8_C(  20),  INT8_C(  64),  INT8_C(  73),  INT8_C(  75), -INT8_C(  38) },
      { -INT8_C(  24),  INT8_C(  58), -INT8_C(  98),  INT8_C( 121),  INT8_C(  74),  INT8_C(  61), -INT8_C(  26), -INT8_C( 116),
         INT8_C( 100),  INT8_C(  59), -INT8_C( 113), -INT8_C( 115), -INT8_C(  23),  INT8_C(  33),  INT8_C(  58), -INT8_C(   8) },
      {  INT8_C( 118),  INT8_C(  85), -INT8_C(  16), -INT8_C(  47),  INT8_C(  16),  INT8_C(  71),  INT8_C(  38),  INT8_C(  77),
         INT8_C( 123), -INT8_C( 123), -INT8_C(  41),      INT8_MIN,  INT8_C(  41),  INT8_C( 106),      INT8_MAX, -INT8_C(   4) } },
    { { -INT8_C(  47), -INT8_C(  23),  INT8_C(  39),  INT8_C(  51), -INT8_C(  61), -INT8_C(  44), -INT8_C( 113),  INT8_C(  35),
        -INT8_C(  52), -INT8_C(  41),  INT8_C(  98),  INT8_C(  85), -INT8_C( 104),  INT8_C( 102), -INT8_C(  36), -INT8_C(  31) },
      UINT16_C(20717),
      { -INT8_C( 104), -INT8_C(  53), -INT8_C( 112), -INT8_C(  37),  INT8_C(  87),  INT8_C(  78), -INT8_C(  51), -INT8_C(  79),
         INT8_C(   5),  INT8_C( 119),  INT8_C(  69), -INT8_C(  74), -INT8_C(  10),  INT8_C(  26),  INT8_C(  95), -INT8_C( 100) },
      { -INT8_C(  17), -INT8_C( 107), -INT8_C(   7), -INT8_C(  58),  INT8_C(  10),  INT8_C(  88),  INT8_C(  60), -INT8_C(  46),
         INT8_C(   2),  INT8_C(  90),  INT8_C(  57),  INT8_C(  85), -INT8_C(  77),  INT8_C(  49), -INT8_C(  36), -INT8_C(  31) },
      { -INT8_C( 121), -INT8_C(  23), -INT8_C( 119), -INT8_C(  95), -INT8_C(  61),      INT8_MAX,  INT8_C(   9), -INT8_C( 125),
        -INT8_C(  52), -INT8_C(  41),  INT8_C(  98),  INT8_C(  85), -INT8_C(  87),  INT8_C( 102),  INT8_C(  59), -INT8_C(  31) } },
    { {  INT8_C(  85),  INT8_C( 118), -INT8_C( 103),      INT8_MIN,  INT8_C(  39), -INT8_C(  43), -INT8_C(  67), -INT8_C(  57),
        -INT8_C(  62),  INT8_C(  83), -INT8_C( 118), -INT8_C( 116), -INT8_C(  79),  INT8_C(  25),  INT8_C( 118),  INT8_C(  95) },
      UINT16_C(62809),
      {  INT8_C(  82), -INT8_C( 124),  INT8_C(  65),  INT8_C(  56), -INT8_C(  94), -INT8_C(   9),  INT8_C(  63), -INT8_C( 116),
        -INT8_C(  68),  INT8_C(  40),  INT8_C(   6), -INT8_C( 104),  INT8_C(   1), -INT8_C( 120), -INT8_C(  34), -INT8_C(  27) },
      {  INT8_C(  86), -INT8_C( 105),  INT8_C(  63), -INT8_C(  53), -INT8_C(  76), -INT8_C( 100),  INT8_C(   3),  INT8_C( 113),
        -INT8_C(  76),  INT8_C(  30), -INT8_C( 104), -INT8_C(  53),  INT8_C(   4), -INT8_C(  45), -INT8_C(  26), -INT8_C(   6) },
      {      INT8_MAX,  INT8_C( 118), -INT8_C( 103),  INT8_C(   3),      INT8_MIN, -INT8_C(  43),  INT8_C(  66), -INT8_C(  57),
             INT8_MIN,  INT8_C(  83), -INT8_C(  98), -INT8_C( 116),  INT8_C(   5),      INT8_MIN, -INT8_C(  60), -INT8_C(  33) } },
    { { -INT8_C(  90), -INT8_C( 117), -INT8_C(  26), -INT8_C(   9), -INT8_C(  54),  INT8_C( 123),  INT8_C(  17), -INT8_C(  40),
        -INT8_C(  24),  INT8_C(  12), -INT8_C(   5),  INT8_C( 120),  INT8_C(  71),  INT8_C(   4),  INT8_C(  10),  INT8_C(   1) },
      UINT16_C(44733),
      { -INT8_C(  54),  INT8_C(  98), -INT8_C(  59),  INT8_C( 107), -INT8_C(  95),  INT8_C(  79), -INT8_C(  23),  INT8_C(  35),
        -INT8_C(  87),  INT8_C(   3),  INT8_C(  87), -INT8_C( 117), -INT8_C( 101),  INT8_C(  66), -INT8_C( 100), -INT8_C(  98) },
      {  INT8_C(   3), -INT8_C(  14), -INT8_C(  39),  INT8_C(  50),  INT8_C(  93), -INT8_C(  35), -INT8_C(  58),  INT8_C(  81),
         INT8_C( 108),  INT8_C(  97),  INT8_C( 119), -INT8_C(   4), -INT8_C(  32), -INT8_C(  56),  INT8_C(  12),  INT8_C(  20) },
      { -INT8_C(  51), -INT8_C( 117), -INT8_C(  98),      INT8_MAX, -INT8_C(   2),  INT8_C(  44),  INT8_C(  17),  INT8_C( 116),
        -INT8_C(  24),  INT8_C( 100),      INT8_MAX, -INT8_C( 121),  INT8_C(  71),  INT8_C(  10),  INT8_C(  10), -INT8_C(  78) } },
    { {  INT8_C(  19), -INT8_C(  64), -INT8_C(  43), -INT8_C(   1), -INT8_C( 111),  INT8_C(  62), -INT8_C( 109),  INT8_C( 118),
        -INT8_C(  60), -INT8_C(  20),  INT8_C( 126), -INT8_C( 114), -INT8_C( 121), -INT8_C(  42), -INT8_C(  28), -INT8_C(  20) },
      UINT16_C(55639),
      { -INT8_C(  71),  INT8_C(  65),  INT8_C(   2), -INT8_C(  81), -INT8_C(  74),  INT8_C(  31),  INT8_C( 108), -INT8_C(  43),
         INT8_C( 116),  INT8_C(  15),  INT8_C(  97), -INT8_C(  97), -INT8_C(  27),  INT8_C( 102), -INT8_C( 108),  INT8_C(  86) },
      { -INT8_C(  89), -INT8_C(  92),  INT8_C( 119), -INT8_C(  97), -INT8_C(  64), -INT8_C(  44),  INT8_C(  57),  INT8_C(  45),
        -INT8_C(  53),  INT8_C(  21),  INT8_C(  88), -INT8_C( 119), -INT8_C(  42),  INT8_C( 100), -INT8_C(  41),  INT8_C(  82) },
      {      INT8_MIN, -INT8_C(  27),  INT8_C( 121), -INT8_C(   1),      INT8_MIN,  INT8_C(  62),      INT8_MAX,  INT8_C( 118),
         INT8_C(  63), -INT8_C(  20),  INT8_C( 126),      INT8_MIN, -INT8_C(  69), -INT8_C(  42),      INT8_MIN,      INT8_MAX } },
    { {  INT8_C(   0), -INT8_C(  56), -INT8_C(  74), -INT8_C(  70),  INT8_C(   8),  INT8_C(  43),  INT8_C( 101), -INT8_C( 121),
         INT8_C(   0),  INT8_C(  92), -INT8_C(  58),  INT8_C(  42),  INT8_C(  93),  INT8_C( 109),  INT8_C(  64),  INT8_C( 125) },
      UINT16_C(21225),
      {  INT8_C( 113),  INT8_C(  49), -INT8_C(  88),  INT8_C( 112), -INT8_C(  39), -INT8_C(  82),  INT8_C(  13), -INT8_C(  74),
         INT8_C(  91), -INT8_C( 122), -INT8_C(  99),  INT8_C( 112), -INT8_C(  37),  INT8_C(  19), -INT8_C(  46), -INT8_C(  30) },
      { -INT8_C(  88),  INT8_C(  60),  INT8_C(  21), -INT8_C(  52),  INT8_C(  33), -INT8_C(  37), -INT8_C(  92),  INT8_C(  25),
         INT8_C(  63),  INT8_C(  50), -INT8_C(  57),  INT8_C(  91),  INT8_C(  73),  INT8_C( 120),  INT8_C(  62),  INT8_C(  79) },
      {  INT8_C(  25), -INT8_C(  56), -INT8_C(  74),  INT8_C(  60),  INT8_C(   8), -INT8_C( 119), -INT8_C(  79), -INT8_C(  49),
         INT8_C(   0), -INT8_C(  72), -INT8_C(  58),  INT8_C(  42),  INT8_C(  36),  INT8_C( 109),  INT8_C(  16),  INT8_C( 125) } },
    { { -INT8_C(  10), -INT8_C(  50), -INT8_C(  47),  INT8_C(  74),  INT8_C(  57), -INT8_C(  26), -INT8_C(  66),  INT8_C(  94),
         INT8_C(  84), -INT8_C( 107), -INT8_C(  57), -INT8_C(  48), -INT8_C(  69), -INT8_C(  65),  INT8_C(  38),  INT8_C(  80) },
      UINT16_C(52423),
      {  INT8_C(  55), -INT8_C(   9),  INT8_C(  51),  INT8_C(  94),  INT8_C(  84), -INT8_C( 116),  INT8_C(  78), -INT8_C(  33),
        -INT8_C(  36), -INT8_C(  21), -INT8_C(  69), -INT8_C(  98),  INT8_C(  52),  INT8_C(  73),  INT8_C(  52), -INT8_C(  72) },
      { -INT8_C(  69), -INT8_C(  10),  INT8_C(   2),  INT8_C(  68), -INT8_C( 124), -INT8_C(  68), -INT8_C(  24), -INT8_C(   4),
         INT8_C(  40), -INT8_C(  98),  INT8_C(  58),  INT8_C(  89), -INT8_C(  59), -INT8_C(  66),  INT8_C(  90), -INT8_C(  84) },
      { -INT8_C(  14), -INT8_C(  19),  INT8_C(  53),  INT8_C(  74),  INT8_C(  57), -INT8_C(  26),  INT8_C(  54), -INT8_C(  37),
         INT8_C(  84), -INT8_C( 107), -INT8_C(  11), -INT8_C(   9), -INT8_C(  69), -INT8_C(  65),      INT8_MAX,      INT8_MIN } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m128i src = simde_x_mm_loadu_epi8(test_vec[i].src);
    simde__m128i a = simde_x_mm_loadu_epi8(test_vec[i].a);
    simde__m128i b = simde_x_mm_loadu_epi8(test_vec[i].b);
    simde__m128i r = simde_mm_mask_adds_epi8(src, test_vec[i].k, a, b);
    simde_test_x86_assert_equal_i8x16(r, simde_x_mm_loadu_epi8(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_mm_maskz_adds_epi8 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const simde__mmask16 k;
    const int8_t a[16];
    const int8_t b[16];
    const int8_t r[16];
  } test_vec[] = {
    { UINT16_C(12102),
      {  INT8_C(   1),  INT8_C(  83), -INT8_C(  45),  INT8_C(   8), -INT8_C( 110), -INT8_C(  61),      INT8_MIN, -INT8_C( 118),
        -INT8_C(  32), -INT8_C(   8), -INT8_C(  28),  INT8_C(  82), -INT8_C(  13), -INT8_C(  72), -INT8_C(  60),  INT8_C(  13) },
      { -INT8_C( 121), -INT8_C(  88), -INT8_C(  66), -INT8_C(  50),  INT8_C(  67),  INT8_C( 126),      INT8_MIN,  INT8_C(  29),
        -INT8_C( 107),  INT8_C(  42), -INT8_C(  47), -INT8_C(  51),  INT8_C( 119),  INT8_C(  13),  INT8_C(  63), -INT8_C(  24) },
      {  INT8_C(   0), -INT8_C(   5), -INT8_C( 111),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),      INT8_MIN,  INT8_C(   0),
             INT8_MIN,  INT8_C(  34), -INT8_C(  75),  INT8_C(  31),  INT8_C(   0), -INT8_C(  59),  INT8_C(   0),  INT8_C(   0) } },
    { UINT16_C(65315),
      {  INT8_C(  98), -INT8_C( 110),  INT8_C(  37),  INT8_C( 119), -INT8_C(  45), -INT8_C( 116),  INT8_C(  33),  INT8_C( 110),
         INT8_C( 102),  INT8_C(  43), -INT8_C(  95), -INT8_C(  73), -INT8_C(  10),  INT8_C(  70),  INT8_C(  39),  INT8_C(  96) },
      {  INT8_C(  77), -INT8_C(  80),  INT8_C(  43), -INT8_C(  64),  INT8_C(  51), -INT8_C(  18),  INT8_C(  91),  INT8_C(  16),
        -INT8_C(  40),  INT8_C(  55), -INT8_C(  39), -INT8_C(  38), -INT8_C(  69), -INT8_C(  67),  INT8_C(  53), -INT8_C( 103) },
      {      INT8_MAX,      INT8_MIN,  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),      INT8_MIN,  INT8_C(   0),  INT8_C(   0),
         INT8_C(  62),  INT8_C(  98),      INT8_MIN, -INT8_C( 111), -INT8_C(  79),  INT8_C(   3),  INT8_C(  92), -INT8_C(   7) } },
    { UINT16_C(29490),
      { -INT8_C(  35), -INT8_C(  98),  INT8_C(   6), -INT8_C(  75),  INT8_C( 113), -INT8_C(  22),  INT8_C(  62),  INT8_C(   7),
        -INT8_C(  56), -INT8_C(  16),  INT8_C( 122), -INT8_C( 115), -INT8_C(  47),  INT8_C(  54), -INT8_C( 125), -INT8_C(  94) },
      { -INT8_C(  82),  INT8_C(  75), -INT8_C(  88),  INT8_C(  26),  INT8_C(  97), -INT8_C(  72),  INT8_C(  34), -INT8_C(  46),
        -INT8_C(  23),  INT8_C(  62),  INT8_C(  30),  INT8_C( 110), -INT8_C(  34), -INT8_C( 121), -INT8_C(  34),  INT8_C(  14) },
      {  INT8_C(   0), -INT8_C(  23),  INT8_C(   0),  INT8_C(   0),      INT8_MAX, -INT8_C(  94),  INT8_C(   0),  INT8_C(   0),
        -INT8_C(  79),  INT8_C(  46),  INT8_C(   0),  INT8_C(   0), -INT8_C(  81), -INT8_C(  67),      INT8_MIN,  INT8_C(   0) } },
    { UINT16_C(14341),
      { -INT8_C(  19), -INT8_C(  46), -INT8_C(  73),  INT8_C(  51), -INT8_C( 101),  INT8_C(  37), -INT8_C(  80),  INT8_C(  41),
         INT8_C(  38),  INT8_C(  20), -INT8_C(  33), -INT8_C(  54),  INT8_C(  67),  INT8_C(  20),  INT8_C(  21),  INT8_C( 117) },
      {  INT8_C(  33), -INT8_C(  99),  INT8_C(  79), -INT8_C( 113), -INT8_C(  63),  INT8_C(   7), -INT8_C( 124), -INT8_C( 105),
         INT8_C(  64), -INT8_C(  85), -INT8_C(  62), -INT8_C(  17), -INT8_C(  96), -INT8_C(  25), -INT8_C(  93),  INT8_C( 124) },
      {  INT8_C(  14),  INT8_C(   0),  INT8_C(   6),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C(  71), -INT8_C(  29), -INT8_C(   5),  INT8_C(   0),  INT8_C(   0) } },
    { UINT16_C( 3703),
      {      INT8_MIN, -INT8_C( 125),  INT8_C(  45), -INT8_C( 105),  INT8_C( 125), -INT8_C(  41),  INT8_C(  59), -INT8_C(  89),
         INT8_C(  14), -INT8_C(  92), -INT8_C(  90), -INT8_C( 114),  INT8_C(  96), -INT8_C(  78), -INT8_C( 109),  INT8_C(  39) },
      { -INT8_C(  91),  INT8_C(  23), -INT8_C(  57),  INT8_C(  59),  INT8_C(  66),  INT8_C(  66),  INT8_C(  12), -INT8_C(  94),
        -INT8_C( 108), -INT8_C(  63),  INT8_C(  99),  INT8_C(  23),  INT8_C(  86),  INT8_C(  80),  INT8_C(  24),  INT8_C(  42) },
      {      INT8_MIN, -INT8_C( 102), -INT8_C(  12),  INT8_C(   0),      INT8_MAX,  INT8_C(  25),  INT8_C(  71),  INT8_C(   0),
         INT8_C(   0),      INT8_MIN,  INT8_C(   9), -INT8_C(  91),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0) } },
    { UINT16_C(23183),
      { -INT8_C( 119), -INT8_C(  26), -INT8_C(  57),  INT8_C(  13), -INT8_C(  45),  INT8_C(  56),  INT8_C(  92),  INT8_C(  18),
         INT8_C(  77), -INT8_C(  82),  INT8_C( 104),  INT8_C(  71), -INT8_C(  99), -INT8_C( 127), -INT8_C(  39), -INT8_C(  14) },
      {  INT8_C(  71),  INT8_C(  93),  INT8_C(  46), -INT8_C(  20),  INT8_C(   5), -INT8_C(  14), -INT8_C(  92), -INT8_C( 125),
        -INT8_C(  73), -INT8_C(  53), -INT8_C(  18),  INT8_C(   0),  INT8_C(  48), -INT8_C(  84), -INT8_C(  86), -INT8_C(  53) },
      { -INT8_C(  48),  INT8_C(  67), -INT8_C(  11), -INT8_C(   7),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C( 107),
         INT8_C(   0),      INT8_MIN,  INT8_C(   0),  INT8_C(  71), -INT8_C(  51),  INT8_C(   0), -INT8_C( 125),  INT8_C(   0) } },
    { UINT16_C( 4280),
      {  INT8_C(  10),  INT8_C(  78),      INT8_MAX, -INT8_C(   8),  INT8_C( 108), -INT8_C(  11), -INT8_C(  97), -INT8_C( 111),
        -INT8_C(  46),  INT8_C(  13), -INT8_C(  47), -INT8_C(  45), -INT8_C( 105), -INT8_C(  25),  INT8_C(   0), -INT8_C(   7) },
      { -INT8_C(  16), -INT8_C(  22),  INT8_C(  88), -INT8_C(  71),  INT8_C(   8), -INT8_C(  70), -INT8_C(  80),  INT8_C( 103),
         INT8_C( 123),  INT8_C(  93), -INT8_C(  35),  INT8_C(  85),  INT8_C(  10),  INT8_C(  77),  INT8_C(   0),  INT8_C(  47) },
      {  INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C(  79),  INT8_C( 116), -INT8_C(  81),  INT8_C(   0), -INT8_C(   8),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C(  95),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0) } },
    { UINT16_C( 4325),
      {  INT8_C(  65),  INT8_C(  62),  INT8_C(  42), -INT8_C(  68),  INT8_C(  90),  INT8_C(  73),  INT8_C(  19), -INT8_C(  56),
        -INT8_C(   4),  INT8_C(  31),  INT8_C(   4),  INT8_C(   3),  INT8_C(  44),  INT8_C(  90),  INT8_C(  99), -INT8_C(  25) },
      {  INT8_C(  89),  INT8_C(  52),  INT8_C( 104), -INT8_C(  86),  INT8_C( 121), -INT8_C(  27),  INT8_C(  75), -INT8_C(   9),
        -INT8_C(  48),  INT8_C( 121),  INT8_C(  40), -INT8_C(   3), -INT8_C(  53), -INT8_C( 114), -INT8_C( 100),  INT8_C(  81) },
      {      INT8_MAX,  INT8_C(   0),      INT8_MAX,  INT8_C(   0),  INT8_C(   0),  INT8_C(  46),  INT8_C(  94), -INT8_C(  65),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C(   9),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0) } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m128i a = simde_x_mm_loadu_epi8(test_vec[i].a);
    simde__m128i b = simde_x_mm_loadu_epi8(test_vec[i].b);
    simde__m128i r = simde_mm_maskz_adds_epi8(test_vec[i].k, a, b);
    simde_test_x86_assert_equal_i8x16(r, simde_x_mm_loadu_epi8(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_mm_mask_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const int16_t src[8];
    const simde__mmask8 k;
    const int16_t a[8];
    const int16_t b[8];
    const int16_t r[8];
  } test_vec[] = {
    { {  INT16_C( 19830), -INT16_C( 20263),  INT16_C(  6365),  INT16_C(  9514),  INT16_C(  8029), -INT16_C( 31012), -INT16_C( 27351),  INT16_C( 19606) },
      UINT8_C(166),
      { -INT16_C( 21201), -INT16_C( 16983), -INT16_C( 28913),  INT16_C(   479), -INT16_C( 27699), -INT16_C(   698), -INT16_C( 21664),  INT16_C( 12978) },
      { -INT16_C( 31630), -INT16_C( 27895), -INT16_C( 31919), -INT16_C( 25946),  INT16_C(  5384),  INT16_C( 31469),  INT16_C( 29499), -INT16_C(  8608) },
      {  INT16_C( 19830),       INT16_MIN,       INT16_MIN,  INT16_C(  9514),  INT16_C(  8029),  INT16_C( 30771), -INT16_C( 27351),  INT16_C(  4370) } },
    { {  INT16_C( 14956), -INT16_C( 24206),  INT16_C( 10279),  INT16_C(   662), -INT16_C( 16911), -INT16_C( 17106), -INT16_C(  4862), -INT16_C(  4374) },
      UINT8_C(253),
      {  INT16_C( 25492), -INT16_C(  2767), -INT16_C(  5158), -INT16_C(  5013),  INT16_C( 23080),  INT16_C( 24538),  INT16_C( 24678), -INT16_C( 27578) },
      { -INT16_C(  5284),  INT16_C(  1255),  INT16_C( 12121),  INT16_C( 12017),  INT16_C( 13281),  INT16_C(  1685),  INT16_C( 18360), -INT16_C( 24670) },
      {  INT16_C( 20208), -INT16_C( 24206),  INT16_C(  6963),  INT16_C(  7004),       INT16_MAX,  INT16_C( 26223),       INT16_MAX,       INT16_MIN } },
    { { -INT16_C( 14832), -INT16_C( 19736),  INT16_C(  5222), -INT16_C(  1427),  INT16_C( 24020),  INT16_C( 13226), -INT16_C( 22015),  INT16_C(  8143) },
      UINT8_C(219),
      { -INT16_C( 20552), -INT16_C(  5853),  INT16_C( 22872), -INT16_C(  6013), -INT16_C( 16137), -INT16_C( 27569),  INT16_C( 19276), -INT16_C( 26420) },
      {  INT16_C(  1430),  INT16_C( 15804),  INT16_C( 13643),  INT16_C( 13486),  INT16_C( 28580),  INT16_C( 26652),  INT16_C( 15895), -INT16_C( 25828) },
      { -INT16_C( 19122),  INT16_C(  9951),  INT16_C(  5222),  INT16_C(  7473),  INT16_C( 12443),  INT16_C( 13226),       INT16_MAX,       INT16_MIN } },
    { {  INT16_C( 18056), -INT16_C(  6311), -INT16_C( 10823),  INT16_C(  8297),  INT16_C( 24132),  INT16_C( 31019), -INT16_C( 20821),  INT16_C(  1073) },
      UINT8_C(155),
      {  INT16_C( 25312), -INT16_C( 18725), -INT16_C( 31168), -INT16_C( 13304), -INT16_C( 19949),  INT16_C( 28347),  INT16_C(  3674),  INT16_C( 11284) },
      { -INT16_C( 32624),  INT16_C( 14806),  INT16_C( 29854), -INT16_C( 13394),  INT16_C( 19939),  INT16_C( 14150), -INT16_C( 32469), -INT16_C( 16490) },
      { -INT16_C(  7312), -INT16_C(  3919), -INT16_C( 10823), -INT16_C( 26698), -INT16_C(    10),  INT16_C( 31019), -INT16_C( 20821), -INT16_C(  5206) } },
    { {  INT16_C( 16411),  INT16_C( 26770), -INT16_C( 15770),  INT16_C( 11567), -INT16_C( 25386), -INT16_C( 21370), -INT16_C( 18951),  INT16_C(  5013) },
      UINT8_C(175),
      {  INT16_C( 22074), -INT16_C(  6096),  INT16_C( 12562), -INT16_C(  2681), -INT16_C(  8474),  INT16_C(  7981),  INT16_C( 29859), -INT16_C(  5915) },
      { -INT16_C( 26649), -INT16_C( 14667), -INT16_C( 21700),  INT16_C( 23924),  INT16_C( 23041), -INT16_C( 12329), -INT16_C( 26844),  INT16_C( 12057) },
      { -INT16_C(  4575), -INT16_C( 20763), -INT16_C(  9138),  INT16_C( 21243), -INT16_C( 25386), -INT16_C(  4348), -INT16_C( 18951),  INT16_C(  6142) } },
    { {  INT16_C( 31823), -INT16_C( 16416),  INT16_C( 10547), -INT16_C( 20936), -INT16_C( 21717),  INT16_C(  2429), -INT16_C( 14089),  INT16_C( 20415) },
      UINT8_C(116),
      { -INT16_C( 20670), -INT16_C( 18929), -INT16_C(  9110), -INT16_C( 27658),  INT16_C(  5659), -INT16_C( 22755),  INT16_C( 30401),  INT16_C( 12241) },
      { -INT16_C(  2428), -INT16_C(  3085),  INT16_C( 20629), -INT16_C( 29739), -INT16_C( 19289),  INT16_C( 29198),  INT16_C( 13379), -INT16_C( 26784) },
      {  INT16_C( 31823), -INT16_C( 16416),  INT16_C( 11519), -INT16_C( 20936), -INT16_C( 13630),  INT16_C(  6443),       INT16_MAX,  INT16_C( 20415) } },
    { {  INT16_C( 10682),  INT16_C( 30723), -INT16_C( 25631),  INT16_C( 12870), -INT16_C(  7733), -INT16_C(  3023),  INT16_C(  8882),  INT16_C( 24910) },
      UINT8_C( 45),
      { -INT16_C( 15846), -INT16_C( 19943), -INT16_C( 32694), -INT16_C(  6090),  INT16_C( 14036), -INT16_C( 30104), -INT16_C( 22309),  INT16_C( 32750) },
      { -INT16_C( 16035),  INT16_C(  6633),  INT16_C( 31017), -INT16_C( 29512),  INT16_C( 20156),  INT16_C( 28149),  INT16_C(  9311), -INT16_C( 22877) },
      { -INT16_C( 31881),  INT16_C( 30723), -INT16_C(  1677),       INT16_MIN, -INT16_C(  7733), -INT16_C(  1955),  INT16_C(  8882),  INT16_C( 24910) } },
    { {  INT16_C( 11801),  INT16_C( 30522), -INT16_C( 28771),  INT16_C( 18595), -INT16_C( 26062),  INT16_C(  7549),  INT16_C( 19180), -INT16_C( 19581) },
      UINT8_C( 42),
      {  INT16_C( 21562), -INT16_C( 15180),  INT16_C( 17197),  INT16_C( 26341),  INT16_C( 15144), -INT16_C( 11790),  INT16_C( 26114), -INT16_C( 26150) },
      { -INT16_C( 16280), -INT16_C( 27280),  INT16_C( 27387), -INT16_C( 12348),  INT16_C( 28781),  INT16_C( 23348),  INT16_C( 22336),  INT16_C(  2436) },
      {  INT16_C( 11801),       INT16_MIN, -INT16_C( 28771),  INT16_C( 13993), -INT16_C( 26062),  INT16_C( 11558),  INT16_C( 19180), -INT16_C( 19581) } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m128i src = simde_x_mm_loadu_epi16(test_vec[i].src);
    simde__m128i a = simde_x_mm_loadu_epi16(test_vec[i].a);
    simde__m128i b = simde_x_mm_loadu_epi16(test_vec[i].b);
    simde__m128i r = simde_mm_mask_adds_epi16(src, test_vec[i].k, a, b);
    simde_test_x86_assert_equal_i16x8(r, simde_x_mm_loadu_epi16(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_mm_maskz_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const simde__mmask8 k;
    const int16_t a[8];
    const int16_t b[8];
    const int16_t r[8];
  } test_vec[] = {
    { UINT8_C(126),
      {  INT16_C( 18530), -INT16_C( 15866), -INT16_C( 15400), -INT16_C( 26342), -INT16_C( 14737), -INT16_C( 15030),  INT16_C( 21680),  INT16_C( 29882) },
      {  INT16_C( 27962),  INT16_C( 13123), -INT16_C( 10479),  INT16_C(  3537), -INT16_C(  7715),  INT16_C( 27275), -INT16_C(  4308),  INT16_C(  2341) },
      {  INT16_C(     0), -INT16_C(  2743), -INT16_C( 25879), -INT16_C( 22805), -INT16_C( 22452),  INT16_C( 12245),  INT16_C( 17372),  INT16_C(     0) } },
    { UINT8_C(175),
      { -INT16_C( 18089), -INT16_C( 11763), -INT16_C(  7340), -INT16_C( 26300),  INT16_C( 14485),  INT16_C( 27175),  INT16_C(  8158), -INT16_C( 20335) },
      { -INT16_C(  8103),  INT16_C( 16065), -INT16_C(  4453),  INT16_C(  5089),  INT16_C( 29515), -INT16_C(  2790), -INT16_C( 21763),  INT16_C( 22019) },
      { -INT16_C( 26192),  INT16_C(  4302), -INT16_C( 11793), -INT16_C( 21211),  INT16_C(     0),  INT16_C( 24385),  INT16_C(     0),  INT16_C(  1684) } },
    { UINT8_C( 14),
      { -INT16_C( 20827), -INT16_C( 18732), -INT16_C( 10152), -INT16_C(  2933),  INT16_C( 31842), -INT16_C(  8748), -INT16_C( 11815),  INT16_C( 21410) },
      { -INT16_C(  1528), -INT16_C( 13596), -INT16_C( 25943), -INT16_C( 28335),  INT16_C( 25848),  INT16_C(  9269), -INT16_C( 15402),  INT16_C( 26007) },
      {  INT16_C(     0), -INT16_C( 32328),       INT16_MIN, -INT16_C( 31268),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0) } },
    { UINT8_C( 15),
      { -INT16_C( 27507), -INT16_C(  9398),  INT16_C( 28915), -INT16_C(  2956), -INT16_C( 14608), -INT16_C( 10466),  INT16_C( 28978), -INT16_C(  7517) },
      {  INT16_C( 20451), -INT16_C( 22940),  INT16_C( 26080),  INT16_C( 12379), -INT16_C(  5954), -INT16_C( 27171), -INT16_C( 18512), -INT16_C( 15809) },
      { -INT16_C(  7056), -INT16_C( 32338),       INT16_MAX,  INT16_C(  9423),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0) } },
    { UINT8_C( 30),
      {  INT16_C( 17121), -INT16_C( 27683),  INT16_C( 32718),  INT16_C( 24958), -INT16_C( 20150), -INT16_C(  1717), -INT16_C(  8726), -INT16_C( 15593) },
      {  INT16_C( 21952), -INT16_C(  7015), -INT16_C( 16049), -INT16_C( 27828),  INT16_C( 16846),  INT16_C( 20356),  INT16_C( 31961), -INT16_C( 30752) },
      {  INT16_C(     0),       INT16_MIN,  INT16_C( 16669), -INT16_C(  2870), -INT16_C(  3304),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0) } },
    { UINT8_C(176),
      { -INT16_C(  2095),  INT16_C( 22806),  INT16_C( 10643),  INT16_C( 17957), -INT16_C(  4712), -INT16_C( 17466), -INT16_C( 31523),  INT16_C( 23464) },
      { -INT16_C(  9670),  INT16_C(  4356), -INT16_C( 25926),  INT16_C( 21354), -INT16_C(  3587),  INT16_C( 16434), -INT16_C(  8316), -INT16_C( 28686) },
      {  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C(  8299), -INT16_C(  1032),  INT16_C(     0), -INT16_C(  5222) } },
    { UINT8_C(196),
      {  INT16_C( 23417), -INT16_C(  1452), -INT16_C( 25974), -INT16_C(  1716),  INT16_C( 22247), -INT16_C( 10292),  INT16_C(  7502), -INT16_C(   839) },
      { -INT16_C(  1858), -INT16_C(  2942), -INT16_C( 11236),  INT16_C( 15194), -INT16_C(  6079),  INT16_C(  6575), -INT16_C( 15784), -INT16_C( 25633) },
      {  INT16_C(     0),  INT16_C(     0),       INT16_MIN,  INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C(  8282), -INT16_C( 26472) } },
    { UINT8_C(  6),
      { -INT16_C(  1086),  INT16_C( 31230), -INT16_C( 15014), -INT16_C(  7078), -INT16_C( 11452),  INT16_C( 13045),  INT16_C( 23661),  INT16_C( 14428) },
      { -INT16_C( 29896), -INT16_C( 10249), -INT16_C(  5921), -INT16_C( 11132), -INT16_C(  3726), -INT16_C( 12393),  INT16_C(  5350),  INT16_C( 20495) },
      {  INT16_C(     0),  INT16_C( 20981), -INT16_C( 20935),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0) } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m128i a = simde_x_mm_loadu_epi16(test_vec[i].a);
    simde__m128i b = simde_x_mm_loadu_epi16(test_vec[i].b);
    simde__m128i r = simde_mm_maskz_adds_epi16(test_vec[i].k, a, b);
    simde_test_x86_assert_equal_i16x8(r, simde_x_mm_loadu_epi16(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_mm256_mask_adds_epi8 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const int8_t src[32];
    const simde__mmask32 k;
    const int8_t a[32];
    const int8_t b[32];
    const int8_t r[32];
  } test_vec[] = {
      { {  INT8_C(  63),  INT8_C(  79),  INT8_C(  62), -INT8_C(  24),  INT8_C(  99),  INT8_C(  34),  INT8_C(  33),  INT8_C(  55),
         INT8_C(  34),  INT8_C( 107),  INT8_C( 116),  INT8_C(  40), -INT8_C(  20),  INT8_C(  26),  INT8_C(  82), -INT8_C( 107),
        -INT8_C(  52),      INT8_MIN, -INT8_C(  36),  INT8_C(  51), -INT8_C(  21), -INT8_C( 124),  INT8_C( 112),  INT8_C( 122),
        -INT8_C(  57), -INT8_C(  30), -INT8_C(  11), -INT8_C(  90), -INT8_C(  59),  INT8_C(  91),  INT8_C( 106), -INT8_C( 116) },
      UINT32_C(     17939),
      { -INT8_C( 123), -INT8_C(  71),  INT8_C(   3), -INT8_C(  27),  INT8_C(  90), -INT8_C(  35),  INT8_C(  53), -INT8_C(  70),
         INT8_C(  37), -INT8_C(  93),  INT8_C(  39), -INT8_C(  99), -INT8_C(  73),  INT8_C(  99), -INT8_C(  90), -INT8_C(  99),
         INT8_C(  34),  INT8_C(  74),  INT8_C(  66), -INT8_C(  87), -INT8_C(  35),  INT8_C( 109), -INT8_C(  31),  INT8_C(  57),
         INT8_C(  29), -INT8_C(   1), -INT8_C( 109), -INT8_C(  29), -INT8_C( 102), -INT8_C( 122), -INT8_C(  40), -INT8_C(  64) },
      {  INT8_C(   1), -INT8_C(  57), -INT8_C(  42), -INT8_C(  31),  INT8_C(  49), -INT8_C(  49),  INT8_C(  95), -INT8_C( 124),
        -INT8_C( 108),  INT8_C(  82), -INT8_C( 127), -INT8_C(  41),  INT8_C( 123),  INT8_C(  60),  INT8_C(  18),  INT8_C(   4),
        -INT8_C(  92), -INT8_C( 115),  INT8_C(  22), -INT8_C(  82),  INT8_C(  16), -INT8_C(  95),  INT8_C(  51), -INT8_C(   3),
         INT8_C(  91),  INT8_C(  71), -INT8_C(  33), -INT8_C( 101), -INT8_C( 115), -INT8_C(   4),  INT8_C(  91), -INT8_C( 104) },
      { -INT8_C( 122),      INT8_MIN,  INT8_C(  62), -INT8_C(  24),      INT8_MAX,  INT8_C(  34),  INT8_C(  33),  INT8_C(  55),
         INT8_C(  34), -INT8_C(  11), -INT8_C(  88),  INT8_C(  40), -INT8_C(  20),  INT8_C(  26), -INT8_C(  72), -INT8_C( 107),
        -INT8_C(  52),      INT8_MIN, -INT8_C(  36),  INT8_C(  51), -INT8_C(  21), -INT8_C( 124),  INT8_C( 112),  INT8_C( 122),
        -INT8_C(  57), -INT8_C(  30), -INT8_C(  11), -INT8_C(  90), -INT8_C(  59),  INT8_C(  91),  INT8_C( 106), -INT8_C( 116) } },
    { { -INT8_C( 123),  INT8_C( 123),  INT8_C(  97),  INT8_C(  38), -INT8_C(  67), -INT8_C(  49),  INT8_C(  30), -INT8_C(  76),
        -INT8_C(  84),  INT8_C(  84),  INT8_C(  23),  INT8_C(  86),  INT8_C(   8), -INT8_C(  26), -INT8_C(  64), -INT8_C(  51),
         INT8_C( 112),  INT8_C(  87),  INT8_C( 119),  INT8_C(   1),  INT8_C(  43), -INT8_C(  21),  INT8_C(  90),  INT8_C(  91),
         INT8_C( 125), -INT8_C(  98),  INT8_C(  20),  INT8_C(  24),  INT8_C( 126), -INT8_C(  27), -INT8_C( 117), -INT8_C(  87) },
      UINT32_C(     56101),
      { -INT8_C(  29),  INT8_C(  83),  INT8_C( 102), -INT8_C(  68), -INT8_C(  94),  INT8_C(  98), -INT8_C( 113), -INT8_C(  98),
        -INT8_C(  91), -INT8_C(  30),  INT8_C(  20),  INT8_C( 105),  INT8_C(  46), -INT8_C(  21), -INT8_C(  97), -INT8_C(  66),
        -INT8_C( 109), -INT8_C(  73),  INT8_C(  45),  INT8_C(  30), -INT8_C(  72), -INT8_C( 108), -INT8_C(  85), -INT8_C(  45),
         INT8_C(  78),  INT8_C(  69),  INT8_C(  14),  INT8_C(  75), -INT8_C(  71), -INT8_C(  49), -INT8_C(  55),  INT8_C(  42) },
      {  INT8_C(  52), -INT8_C(  69), -INT8_C( 103), -INT8_C(  82),  INT8_C(  90),  INT8_C(  51), -INT8_C(  42),      INT8_MIN,
         INT8_C( 102),  INT8_C( 100),  INT8_C(   6),  INT8_C(  50), -INT8_C( 114),  INT8_C( 106),  INT8_C( 119), -INT8_C(  17),
        -INT8_C(  46), -INT8_C(  52),  INT8_C(  25), -INT8_C(  71),  INT8_C( 100),  INT8_C(  75),  INT8_C(  70),  INT8_C(   2),
        -INT8_C(  20),  INT8_C(  69), -INT8_C(   9), -INT8_C(  68),  INT8_C( 119), -INT8_C(  98), -INT8_C(  25), -INT8_C(  53) },
      {  INT8_C(  23),  INT8_C( 123), -INT8_C(   1),  INT8_C(  38), -INT8_C(  67),      INT8_MAX,  INT8_C(  30), -INT8_C(  76),
         INT8_C(  11),  INT8_C(  70),  INT8_C(  23),      INT8_MAX, -INT8_C(  68), -INT8_C(  26),  INT8_C(  22), -INT8_C(  83),
         INT8_C( 112),  INT8_C(  87),  INT8_C( 119),  INT8_C(   1),  INT8_C(  43), -INT8_C(  21),  INT8_C(  90),  INT8_C(  91),
         INT8_C( 125), -INT8_C(  98),  INT8_C(  20),  INT8_C(  24),  INT8_C( 126), -INT8_C(  27), -INT8_C( 117), -INT8_C(  87) } },
    { { -INT8_C(  26),  INT8_C(  33), -INT8_C(  40),  INT8_C(  31), -INT8_C(  46),  INT8_C(  71),  INT8_C(  81), -INT8_C(  30),
        -INT8_C(  45), -INT8_C(   8), -INT8_C(   2),      INT8_MAX, -INT8_C(  99),  INT8_C(  87),  INT8_C(  64), -INT8_C(  20),
        -INT8_C(  83), -INT8_C(  40), -INT8_C(  19), -INT8_C( 114),  INT8_C(  34),  INT8_C( 105),  INT8_C(  90),  INT8_C(  35),
         INT8_C(  75),  INT8_C( 112), -INT8_C(  89), -INT8_C( 127),  INT8_C(  95),  INT8_C(  79),  INT8_C(  40),  INT8_C(   8) },
      UINT32_C(     23780),
      { -INT8_C(  46), -INT8_C(  84), -INT8_C(  66), -INT8_C(  62),  INT8_C(  68), -INT8_C( 119), -INT8_C( 126), -INT8_C(  81),
        -INT8_C( 113),  INT8_C(  88), -INT8_C(  93), -INT8_C( 126),  INT8_C(  25),  INT8_C( 108), -INT8_C( 109),  INT8_C(  86),
        -INT8_C(  76),  INT8_C(  45),  INT8_C(  25),  INT8_C(  69),  INT8_C(  27), -INT8_C(  54),  INT8_C(  66), -INT8_C( 126),
         INT8_C( 100), -INT8_C(  10), -INT8_C(  44), -INT8_C(  28),  INT8_C( 113), -INT8_C( 119), -INT8_C(  10), -INT8_C(  93) },
      {  INT8_C( 109), -INT8_C(  64), -INT8_C(  31), -INT8_C(  47),  INT8_C( 104), -INT8_C(  13),  INT8_C(  71),  INT8_C(  10),
        -INT8_C(  90),  INT8_C(  62),  INT8_C( 102), -INT8_C(  45),  INT8_C(  60), -INT8_C(  39), -INT8_C( 121), -INT8_C(  60),
         INT8_C( 117), -INT8_C(  59),  INT8_C(  37), -INT8_C(  71), -INT8_C(  20),  INT8_C(  65), -INT8_C(  54), -INT8_C(  58),
        -INT8_C(  96), -INT8_C(  70), -INT8_C(  87),  INT8_C(  79), -INT8_C(  17),  INT8_C(  50), -INT8_C(  51),  INT8_C(  52) },
      { -INT8_C(  26),  INT8_C(  33), -INT8_C(  97),  INT8_C(  31), -INT8_C(  46),      INT8_MIN, -INT8_C(  55), -INT8_C(  71),
        -INT8_C(  45), -INT8_C(   8),  INT8_C(   9),      INT8_MIN,  INT8_C(  85),  INT8_C(  87),      INT8_MIN, -INT8_C(  20),
        -INT8_C(  83), -INT8_C(  40), -INT8_C(  19), -INT8_C( 114),  INT8_C(  34),  INT8_C( 105),  INT8_C(  90),  INT8_C(  35),
         INT8_C(  75),  INT8_C( 112), -INT8_C(  89), -INT8_C( 127),  INT8_C(  95),  INT8_C(  79),  INT8_C(  40),  INT8_C(   8) } },
    { { -INT8_C( 127), -INT8_C( 111), -INT8_C(  31),  INT8_C( 126),  INT8_C( 108),  INT8_C(  93), -INT8_C(  18),  INT8_C( 111),
        -INT8_C( 105),  INT8_C(  57),  INT8_C(  30), -INT8_C(  40),  INT8_C(  11), -INT8_C( 124), -INT8_C(  72),  INT8_C(  21),
         INT8_C( 105),  INT8_C(  64), -INT8_C(   9),  INT8_C( 116), -INT8_C(  97), -INT8_C(  95),  INT8_C(   6), -INT8_C(  94),
         INT8_C(  64), -INT8_C(  46),  INT8_C(  55),  INT8_C(  98),  INT8_C(  21), -INT8_C(  72), -INT8_C( 125),  INT8_C(  46) },
      UINT32_C(     49881),
      { -INT8_C( 114), -INT8_C(  58),  INT8_C(   3),  INT8_C(  38), -INT8_C(  42), -INT8_C( 116),  INT8_C(  75),  INT8_C(  22),
        -INT8_C(  60),  INT8_C(  47),  INT8_C(  34),  INT8_C(  47), -INT8_C( 105),  INT8_C(  78), -INT8_C(  59), -INT8_C(  90),
        -INT8_C(  37),  INT8_C( 116), -INT8_C(  87), -INT8_C(  26),  INT8_C( 120),  INT8_C(  99), -INT8_C(  89),  INT8_C(  40),
        -INT8_C(   5), -INT8_C(  91), -INT8_C(  78),  INT8_C(  22),  INT8_C(  10), -INT8_C(  39), -INT8_C(  35),  INT8_C(  56) },
      {  INT8_C(   4),  INT8_C(  92),  INT8_C(  58), -INT8_C(  42),  INT8_C( 109),  INT8_C(  85), -INT8_C(  76),  INT8_C( 113),
         INT8_C(  58), -INT8_C(  80),  INT8_C(  16),  INT8_C(  52),  INT8_C(   8),  INT8_C(  35), -INT8_C(  21),  INT8_C( 108),
         INT8_C( 126), -INT8_C(  36), -INT8_C(  43), -INT8_C(  64),  INT8_C(  95), -INT8_C( 115), -INT8_C(  91),  INT8_C(  38),
         INT8_C(  96),  INT8_C(  13),  INT8_C(  93),  INT8_C(  14),  INT8_C( 107), -INT8_C(  90),  INT8_C(  99),  INT8_C(  71) },
      { -INT8_C( 110), -INT8_C( 111), -INT8_C(  31), -INT8_C(   4),  INT8_C(  67),  INT8_C(  93), -INT8_C(   1),      INT8_MAX,
        -INT8_C( 105), -INT8_C(  33),  INT8_C(  30), -INT8_C(  40),  INT8_C(  11), -INT8_C( 124), -INT8_C(  80),  INT8_C(  18),
         INT8_C( 105),  INT8_C(  64), -INT8_C(   9),  INT8_C( 116), -INT8_C(  97), -INT8_C(  95),  INT8_C(   6), -INT8_C(  94),
         INT8_C(  64), -INT8_C(  46),  INT8_C(  55),  INT8_C(  98),  INT8_C(  21), -INT8_C(  72), -INT8_C( 125),  INT8_C(  46) } },
    { { -INT8_C(  92), -INT8_C(  56), -INT8_C(  56), -INT8_C(   3),  INT8_C( 106), -INT8_C( 125), -INT8_C(  24), -INT8_C( 120),
        -INT8_C(  42), -INT8_C(   1),  INT8_C(  74),  INT8_C(  47),  INT8_C(  71), -INT8_C(  15), -INT8_C(   8),  INT8_C(  57),
         INT8_C( 109),  INT8_C(  68), -INT8_C(  69),  INT8_C(  98), -INT8_C(  52),  INT8_C(  55),  INT8_C(  55),  INT8_C( 101),
        -INT8_C(  58),  INT8_C( 121), -INT8_C(  76), -INT8_C( 112),  INT8_C(  50), -INT8_C(  36), -INT8_C(  36),  INT8_C(  96) },
      UINT32_C(     33993),
      { -INT8_C(   4), -INT8_C(   8),  INT8_C(  72),  INT8_C( 121),  INT8_C(  22), -INT8_C(  61), -INT8_C(  95),  INT8_C(  91),
         INT8_C(  13), -INT8_C( 124),  INT8_C(  34), -INT8_C(  59),  INT8_C(  96),  INT8_C(  14),  INT8_C(  20),  INT8_C(  69),
         INT8_C(  18),  INT8_C(  37),  INT8_C(  87), -INT8_C(  61), -INT8_C(  47), -INT8_C(  17),  INT8_C(  37), -INT8_C(  73),
        -INT8_C(  66),  INT8_C(  43), -INT8_C(  63),  INT8_C( 101), -INT8_C( 107), -INT8_C(  56), -INT8_C(  72), -INT8_C(  87) },
      {  INT8_C(  82),  INT8_C( 121), -INT8_C(  76),  INT8_C(  57), -INT8_C(  81),  INT8_C(  56), -INT8_C(  72),  INT8_C(  67),
         INT8_C(  58),  INT8_C(  91),  INT8_C(  66), -INT8_C(  59), -INT8_C(  79), -INT8_C(  29), -INT8_C(  96),      INT8_MIN,
         INT8_C(  89), -INT8_C(  52), -INT8_C(  48), -INT8_C( 102), -INT8_C(  77), -INT8_C(  68),  INT8_C(   9),  INT8_C( 120),
         INT8_C(  28), -INT8_C(  42),  INT8_C(  38), -INT8_C(  89), -INT8_C(  78),  INT8_C( 109),  INT8_C(  34),  INT8_C(  43) },
      {  INT8_C(  78), -INT8_C(  56), -INT8_C(  56),      INT8_MAX,  INT8_C( 106), -INT8_C( 125),      INT8_MIN,      INT8_MAX,
        -INT8_C(  42), -INT8_C(   1),  INT8_C( 100),  INT8_C(  47),  INT8_C(  71), -INT8_C(  15), -INT8_C(   8), -INT8_C(  59),
         INT8_C( 109),  INT8_C(  68), -INT8_C(  69),  INT8_C(  98), -INT8_C(  52),  INT8_C(  55),  INT8_C(  55),  INT8_C( 101),
        -INT8_C(  58),  INT8_C( 121), -INT8_C(  76), -INT8_C( 112),  INT8_C(  50), -INT8_C(  36), -INT8_C(  36),  INT8_C(  96) } },
    { { -INT8_C( 119),  INT8_C(   0),  INT8_C(  65), -INT8_C(  53), -INT8_C(  18),  INT8_C(  41),  INT8_C(  12),  INT8_C(  72),
        -INT8_C(  86),  INT8_C(  39),  INT8_C(  80), -INT8_C(  86), -INT8_C(  98),  INT8_C(  71), -INT8_C(  10),  INT8_C(  26),
         INT8_C(   2),  INT8_C(   2),  INT8_C(  81), -INT8_C(  15), -INT8_C( 127),  INT8_C(  89),  INT8_C( 120), -INT8_C( 108),
         INT8_C(  37),  INT8_C(  34),  INT8_C(  62),  INT8_C(   1),  INT8_C(  36),  INT8_C(  86),  INT8_C( 109),  INT8_C( 112) },
      UINT32_C(      9379),
      {  INT8_C( 104),  INT8_C(  79),  INT8_C(  45),  INT8_C(  74), -INT8_C(   6), -INT8_C(  53),  INT8_C(  39), -INT8_C(  66),
         INT8_C(  44), -INT8_C(  68),  INT8_C(  67),  INT8_C(  50), -INT8_C(  91), -INT8_C(  88),  INT8_C(  82), -INT8_C(  87),
         INT8_C(  16),  INT8_C(  37),  INT8_C(  87), -INT8_C(  66), -INT8_C(  77),  INT8_C(  46),  INT8_C(  25),  INT8_C(  15),
         INT8_C(  45), -INT8_C(  13), -INT8_C(  39), -INT8_C( 113),  INT8_C(  16),  INT8_C(  13), -INT8_C(  73), -INT8_C( 102) },
      {  INT8_C(  96),  INT8_C(  32),  INT8_C(  87), -INT8_C(  68),  INT8_C( 115), -INT8_C(  15), -INT8_C(  38), -INT8_C(  33),
        -INT8_C(  61), -INT8_C( 113), -INT8_C( 118),  INT8_C(  12),  INT8_C(  78), -INT8_C(  29), -INT8_C(  43),  INT8_C(  48),
        -INT8_C(  55),  INT8_C(  71), -INT8_C(  43),  INT8_C(  21), -INT8_C(  98), -INT8_C(  50),  INT8_C( 121),  INT8_C( 116),
         INT8_C(  65),  INT8_C(  79),      INT8_MAX,  INT8_C(  62),  INT8_C(   2),  INT8_C( 115),  INT8_C(  10),  INT8_C(  17) },
      {      INT8_MAX,  INT8_C( 111),  INT8_C(  65), -INT8_C(  53), -INT8_C(  18), -INT8_C(  68),  INT8_C(  12), -INT8_C(  99),
        -INT8_C(  86),  INT8_C(  39), -INT8_C(  51), -INT8_C(  86), -INT8_C(  98), -INT8_C( 117), -INT8_C(  10),  INT8_C(  26),
         INT8_C(   2),  INT8_C(   2),  INT8_C(  81), -INT8_C(  15), -INT8_C( 127),  INT8_C(  89),  INT8_C( 120), -INT8_C( 108),
         INT8_C(  37),  INT8_C(  34),  INT8_C(  62),  INT8_C(   1),  INT8_C(  36),  INT8_C(  86),  INT8_C( 109),  INT8_C( 112) } },
    { {  INT8_C( 106), -INT8_C(  38),  INT8_C( 113), -INT8_C( 114), -INT8_C( 121),  INT8_C(  92), -INT8_C(  30),  INT8_C( 110),
         INT8_C(  56), -INT8_C(  93), -INT8_C(  61),  INT8_C(  32),  INT8_C(   8),  INT8_C(  89),  INT8_C(  67), -INT8_C( 108),
        -INT8_C(  52),  INT8_C( 104), -INT8_C(  67), -INT8_C(   2),  INT8_C( 105),  INT8_C(  96), -INT8_C(  60),  INT8_C(  83),
        -INT8_C( 123), -INT8_C(  16),  INT8_C(  90),  INT8_C(  53),  INT8_C(   8), -INT8_C(  83), -INT8_C(   2), -INT8_C(  72) },
      UINT32_C(     60777),
      {  INT8_C(  87),  INT8_C( 109), -INT8_C(  14), -INT8_C(  56), -INT8_C(  36),  INT8_C(  50),  INT8_C( 112), -INT8_C( 106),
         INT8_C( 115),  INT8_C(  42),  INT8_C( 109),  INT8_C(   2), -INT8_C(  46), -INT8_C(  67),  INT8_C(  26),  INT8_C( 102),
        -INT8_C( 104), -INT8_C( 104),  INT8_C(   5), -INT8_C(  69), -INT8_C(  12), -INT8_C(  38), -INT8_C( 100), -INT8_C(  59),
         INT8_C(  92), -INT8_C(  63),  INT8_C(  99),  INT8_C(  33),  INT8_C(  56), -INT8_C(  66), -INT8_C(  59), -INT8_C(  33) },
      { -INT8_C(  65),  INT8_C(  98),  INT8_C(  34),  INT8_C( 105),  INT8_C(  11),  INT8_C(  40), -INT8_C(  94),  INT8_C(  55),
         INT8_C(  93),  INT8_C(  32),  INT8_C(  16), -INT8_C( 123), -INT8_C(  53),  INT8_C( 118),  INT8_C(  76), -INT8_C(   7),
        -INT8_C( 126), -INT8_C(  96),  INT8_C( 111),      INT8_MIN, -INT8_C(  88), -INT8_C(  35),  INT8_C( 107),  INT8_C(  19),
         INT8_C(  54), -INT8_C(  31),  INT8_C(  97),  INT8_C(  15), -INT8_C(  66),  INT8_C( 116),  INT8_C(  96), -INT8_C(   1) },
      {  INT8_C(  22), -INT8_C(  38),  INT8_C( 113),  INT8_C(  49), -INT8_C( 121),  INT8_C(  90),  INT8_C(  18),  INT8_C( 110),
             INT8_MAX, -INT8_C(  93),  INT8_C( 125), -INT8_C( 121),  INT8_C(   8),  INT8_C(  51),  INT8_C( 102),  INT8_C(  95),
        -INT8_C(  52),  INT8_C( 104), -INT8_C(  67), -INT8_C(   2),  INT8_C( 105),  INT8_C(  96), -INT8_C(  60),  INT8_C(  83),
        -INT8_C( 123), -INT8_C(  16),  INT8_C(  90),  INT8_C(  53),  INT8_C(   8), -INT8_C(  83), -INT8_C(   2), -INT8_C(  72) } },
    { {  INT8_C( 100), -INT8_C(  55),      INT8_MIN,  INT8_C(  72),  INT8_C(  87),  INT8_C(  65),  INT8_C(  86), -INT8_C(  76),
         INT8_C(  80),  INT8_C( 106), -INT8_C( 121),      INT8_MAX, -INT8_C( 112), -INT8_C(  35), -INT8_C(   2), -INT8_C(  44),
         INT8_C(  49), -INT8_C(  82), -INT8_C(  22), -INT8_C(  13), -INT8_C(  17), -INT8_C(   8), -INT8_C(  14),  INT8_C( 108),
         INT8_C( 126),  INT8_C(  95), -INT8_C(  50), -INT8_C(  76),  INT8_C( 116), -INT8_C(   6),  INT8_C(  17), -INT8_C(  97) },
      UINT32_C(     17935),
      { -INT8_C(  36),  INT8_C( 107),  INT8_C(  99), -INT8_C(  88), -INT8_C( 108), -INT8_C(  54), -INT8_C( 107), -INT8_C(  60),
         INT8_C(  33),  INT8_C( 111),  INT8_C(  96),  INT8_C( 117),  INT8_C(  43), -INT8_C(  46), -INT8_C(  19), -INT8_C( 103),
        -INT8_C( 107), -INT8_C(  51),  INT8_C( 122),  INT8_C(  90),  INT8_C(  34), -INT8_C(  40), -INT8_C( 107),  INT8_C( 117),
         INT8_C(  95),  INT8_C(  30), -INT8_C(  30),  INT8_C( 112),  INT8_C(  86), -INT8_C(  46), -INT8_C(   2),  INT8_C( 109) },
      {  INT8_C(  69),  INT8_C(  50),  INT8_C( 112),  INT8_C(  36), -INT8_C(  68),  INT8_C(  41),  INT8_C(  61),  INT8_C(  95),
        -INT8_C(  71),  INT8_C(  65), -INT8_C(  90), -INT8_C(  46),  INT8_C(  10),  INT8_C(  89), -INT8_C(  35), -INT8_C(  68),
        -INT8_C(  54),  INT8_C(  48),      INT8_MIN, -INT8_C( 108), -INT8_C(  48), -INT8_C(  34), -INT8_C(  69), -INT8_C(  69),
         INT8_C(   0),  INT8_C(  32),  INT8_C(   8),  INT8_C(  21),  INT8_C(  10),  INT8_C(  48), -INT8_C(  60),  INT8_C(  55) },
      {  INT8_C(  33),      INT8_MAX,      INT8_MAX, -INT8_C(  52),  INT8_C(  87),  INT8_C(  65),  INT8_C(  86), -INT8_C(  76),
         INT8_C(  80),      INT8_MAX,  INT8_C(   6),      INT8_MAX, -INT8_C( 112), -INT8_C(  35), -INT8_C(  54), -INT8_C(  44),
         INT8_C(  49), -INT8_C(  82), -INT8_C(  22), -INT8_C(  13), -INT8_C(  17), -INT8_C(   8), -INT8_C(  14),  INT8_C( 108),
         INT8_C( 126),  INT8_C(  95), -INT8_C(  50), -INT8_C(  76),  INT8_C( 116), -INT8_C(   6),  INT8_C(  17), -INT8_C(  97) } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m256i src = simde_x_mm256_loadu_epi8(test_vec[i].src);
    simde__m256i a = simde_x_mm256_loadu_epi8(test_vec[i].a);
    simde__m256i b = simde_x_mm256_loadu_epi8(test_vec[i].b);
    simde__m256i r = simde_mm256_mask_adds_epi8(src, test_vec[i].k, a, b);
    simde_test_x86_assert_equal_i8x32(r, simde_x_mm256_loadu_epi8(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_mm256_maskz_adds_epi8 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const simde__mmask32 k;
    const int8_t a[32];
    const int8_t b[32];
    const int8_t r[32];
  } test_vec[] = {
    { UINT32_C(     14766),
      {  INT8_C(  55),  INT8_C(  62),  INT8_C(  61), -INT8_C(  18),  INT8_C(  70), -INT8_C(  29),  INT8_C(  26), -INT8_C(  17),
         INT8_C(  21),  INT8_C(  30), -INT8_C(  94), -INT8_C(   9),  INT8_C(   2),  INT8_C( 115), -INT8_C(  89), -INT8_C(  32),
         INT8_C(  70), -INT8_C( 105),  INT8_C(  70),  INT8_C(  70),  INT8_C(  61),  INT8_C(  10),  INT8_C(   9),  INT8_C(  43),
         INT8_C(  68), -INT8_C(  98), -INT8_C( 100), -INT8_C( 127), -INT8_C(  29),  INT8_C(  26), -INT8_C(  67), -INT8_C(  57) },
      {  INT8_C(  66),  INT8_C(  16),  INT8_C( 100), -INT8_C(  70),  INT8_C(  89), -INT8_C(  69), -INT8_C(  68), -INT8_C( 110),
         INT8_C(  64), -INT8_C( 113), -INT8_C(  40),  INT8_C(  48),  INT8_C(  79), -INT8_C(  27),  INT8_C(  25),  INT8_C(  42),
        -INT8_C(  19),  INT8_C(  67),  INT8_C(  63), -INT8_C(  22), -INT8_C( 125),  INT8_C(  59), -INT8_C(  74),  INT8_C(  64),
        -INT8_C(  96),  INT8_C(  66),  INT8_C(  71), -INT8_C(  80),  INT8_C(  23), -INT8_C( 102),  INT8_C(  65),  INT8_C( 126) },
      {  INT8_C(   0),  INT8_C(  78),      INT8_MAX, -INT8_C(  88),  INT8_C(   0), -INT8_C(  98),  INT8_C(   0), -INT8_C( 127),
         INT8_C(  85),  INT8_C(   0),  INT8_C(   0),  INT8_C(  39),  INT8_C(  81),  INT8_C(  88),  INT8_C(   0),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0) } },
    { UINT32_C(     48711),
      { -INT8_C(  23), -INT8_C( 106),  INT8_C(  46), -INT8_C(  92), -INT8_C(  53), -INT8_C( 100), -INT8_C(  19), -INT8_C(  86),
        -INT8_C(   3),  INT8_C( 102),  INT8_C(  27),  INT8_C(  95),  INT8_C(  80),  INT8_C(  93),  INT8_C( 104), -INT8_C(  65),
        -INT8_C( 117), -INT8_C(  64),  INT8_C( 111), -INT8_C(  87), -INT8_C(  92),  INT8_C(  32),  INT8_C(  69), -INT8_C(  39),
         INT8_C(  50), -INT8_C(  78),  INT8_C(  69),  INT8_C(  71), -INT8_C(  10), -INT8_C(  95),  INT8_C(  19),  INT8_C(  78) },
      { -INT8_C(  13),  INT8_C(  64),  INT8_C(  95), -INT8_C( 107),  INT8_C(  32),  INT8_C(  21),  INT8_C( 116), -INT8_C(  18),
        -INT8_C(  61),  INT8_C(  88),  INT8_C( 111), -INT8_C(  60), -INT8_C(   5),  INT8_C(   0), -INT8_C(  87), -INT8_C(  89),
        -INT8_C(  75), -INT8_C( 119),  INT8_C( 100),  INT8_C(  56),  INT8_C( 112), -INT8_C( 120), -INT8_C( 115), -INT8_C(  17),
        -INT8_C(  19),  INT8_C(  30), -INT8_C(  93),  INT8_C(  18),  INT8_C(  40), -INT8_C(  94), -INT8_C(  36), -INT8_C(  32) },
      { -INT8_C(  36), -INT8_C(  42),      INT8_MAX,  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  97),  INT8_C(   0),
         INT8_C(   0),      INT8_MAX,      INT8_MAX,  INT8_C(  35),  INT8_C(  75),  INT8_C(  93),  INT8_C(   0),      INT8_MIN,
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0) } },
    { UINT32_C(     22629),
      {  INT8_C(   0),  INT8_C(  69), -INT8_C(  39), -INT8_C( 106), -INT8_C(  84),  INT8_C(  19),  INT8_C(  31), -INT8_C(  16),
        -INT8_C( 113), -INT8_C(  23),  INT8_C(  40),  INT8_C(  69), -INT8_C(   7), -INT8_C(  85), -INT8_C(  89), -INT8_C( 117),
         INT8_C(  70),  INT8_C(  44),  INT8_C( 115),  INT8_C(  20),  INT8_C(  16),  INT8_C(  45), -INT8_C(  30),  INT8_C(  36),
         INT8_C(  38), -INT8_C(  49),  INT8_C(  88),  INT8_C(  80),  INT8_C(  78),  INT8_C(  52),  INT8_C(  70),  INT8_C(  47) },
      { -INT8_C(  37), -INT8_C(  51), -INT8_C(  78), -INT8_C(  33),  INT8_C(  76),  INT8_C(  24),  INT8_C(   2),  INT8_C(  44),
         INT8_C(  68), -INT8_C(  42),  INT8_C(   1), -INT8_C(  82), -INT8_C(   7), -INT8_C( 101), -INT8_C( 121), -INT8_C(   5),
         INT8_C(  42),  INT8_C(  31), -INT8_C(  59), -INT8_C( 111),      INT8_MIN, -INT8_C(  74), -INT8_C(  80), -INT8_C(  43),
        -INT8_C(  92), -INT8_C(   5),  INT8_C(  56), -INT8_C(  57), -INT8_C(  14),  INT8_C(  35), -INT8_C(  94), -INT8_C(  10) },
      { -INT8_C(  37),  INT8_C(   0), -INT8_C( 117),  INT8_C(   0),  INT8_C(   0),  INT8_C(  43),  INT8_C(  33),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C(  13), -INT8_C(  14),  INT8_C(   0),      INT8_MIN,  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0) } },
    { UINT32_C(     34647),
      {  INT8_C(  22), -INT8_C( 101), -INT8_C(   1),  INT8_C(  44),  INT8_C(  87),  INT8_C(  24), -INT8_C(  84), -INT8_C(  58),
        -INT8_C(  20),  INT8_C(  81), -INT8_C(  60), -INT8_C(  24),  INT8_C(   6),  INT8_C(  70), -INT8_C(  48),  INT8_C( 111),
        -INT8_C(  65),  INT8_C(  60), -INT8_C(  59),  INT8_C(  20),  INT8_C(   6), -INT8_C(  65), -INT8_C(  88),  INT8_C( 103),
         INT8_C(  43),  INT8_C(  22),  INT8_C(  95),  INT8_C(  54),  INT8_C(  91),  INT8_C( 116),  INT8_C( 118),  INT8_C(   1) },
      { -INT8_C(  64), -INT8_C(  72), -INT8_C(  36), -INT8_C(  45), -INT8_C(  62), -INT8_C( 121),  INT8_C(  20),  INT8_C(  98),
         INT8_C(   9), -INT8_C(   3), -INT8_C(  33), -INT8_C(  57), -INT8_C(  77),  INT8_C(  54),  INT8_C(  14), -INT8_C( 101),
         INT8_C(  57), -INT8_C( 123), -INT8_C(  71),  INT8_C(  16),  INT8_C( 102),  INT8_C(   5), -INT8_C( 127),  INT8_C(  46),
         INT8_C( 112), -INT8_C(  64),  INT8_C(   3),  INT8_C(  32), -INT8_C(  70), -INT8_C(  90), -INT8_C(  38), -INT8_C(  60) },
      { -INT8_C(  42),      INT8_MIN, -INT8_C(  37),  INT8_C(   0),  INT8_C(  25),  INT8_C(   0), -INT8_C(  64),  INT8_C(   0),
        -INT8_C(  11),  INT8_C(  78), -INT8_C(  93),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  10),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0) } },
    { UINT32_C(     33178),
      { -INT8_C( 112), -INT8_C( 114), -INT8_C(  27),  INT8_C(  55),  INT8_C(  41),  INT8_C(  10),  INT8_C( 103), -INT8_C( 121),
         INT8_C(  66), -INT8_C( 119),  INT8_C(  82), -INT8_C( 125), -INT8_C( 120),  INT8_C(   5),  INT8_C(  41), -INT8_C(  55),
        -INT8_C( 114),  INT8_C( 124), -INT8_C( 115),  INT8_C(  57),  INT8_C(  20), -INT8_C(  84), -INT8_C(   7),  INT8_C( 102),
        -INT8_C(  77), -INT8_C(   5), -INT8_C(  59), -INT8_C(  62),  INT8_C( 124),  INT8_C(  14),  INT8_C(  57),  INT8_C(  94) },
      { -INT8_C( 126),  INT8_C(  83),  INT8_C(   7),  INT8_C(  67),  INT8_C(  33),  INT8_C(  82), -INT8_C(  24),  INT8_C(  96),
        -INT8_C( 112), -INT8_C(  43),  INT8_C(  36),  INT8_C(  36), -INT8_C(  99), -INT8_C(  23),  INT8_C(  74),  INT8_C(  27),
        -INT8_C(  72),  INT8_C(  23), -INT8_C(  17), -INT8_C(   4), -INT8_C(  25), -INT8_C(  84), -INT8_C(  55), -INT8_C( 115),
        -INT8_C(  36),  INT8_C(  16),  INT8_C(  33),  INT8_C(  13),  INT8_C(   3),  INT8_C(  29), -INT8_C(  53),      INT8_MAX },
      {  INT8_C(   0), -INT8_C(  31),  INT8_C(   0),  INT8_C( 122),  INT8_C(  74),  INT8_C(   0),  INT8_C(   0), -INT8_C(  25),
        -INT8_C(  46),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C(  28),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0) } },
    { UINT32_C(     23935),
      {  INT8_C(  37),  INT8_C(  27),  INT8_C(  77), -INT8_C( 113),  INT8_C(   4), -INT8_C(  36), -INT8_C(   1),  INT8_C( 117),
        -INT8_C(  77),  INT8_C(  42),  INT8_C( 104),  INT8_C( 109), -INT8_C(   9),  INT8_C(  94),  INT8_C(  23),  INT8_C(  25),
        -INT8_C(  69), -INT8_C(  80), -INT8_C(  76),  INT8_C(  22), -INT8_C(  44), -INT8_C(  48),  INT8_C( 100), -INT8_C(  87),
         INT8_C(  73),  INT8_C(  64),  INT8_C(  74),  INT8_C(  77), -INT8_C( 104),  INT8_C( 109),  INT8_C(  73), -INT8_C( 100) },
      {  INT8_C(  34),  INT8_C(  89),  INT8_C(  99),  INT8_C(  37),  INT8_C(   2),  INT8_C(  58),  INT8_C(  49),  INT8_C(  10),
         INT8_C(  72), -INT8_C(  35),  INT8_C( 120),  INT8_C(  43),  INT8_C(  84), -INT8_C(  59), -INT8_C(  72),  INT8_C( 106),
         INT8_C(  33),  INT8_C(  86),  INT8_C(  69), -INT8_C(  42), -INT8_C(  14),  INT8_C(  32),  INT8_C( 113), -INT8_C( 101),
        -INT8_C( 108), -INT8_C(  77),  INT8_C( 126), -INT8_C(  15),  INT8_C(  63),  INT8_C( 113),  INT8_C( 108), -INT8_C( 117) },
      {  INT8_C(  71),  INT8_C( 116),      INT8_MAX, -INT8_C(  76),  INT8_C(   6),  INT8_C(  22),  INT8_C(  48),  INT8_C(   0),
        -INT8_C(   5),  INT8_C(   0),      INT8_MAX,      INT8_MAX,  INT8_C(  75),  INT8_C(   0), -INT8_C(  49),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0) } },
    { UINT32_C(     30325),
      { -INT8_C(  38),  INT8_C(  61), -INT8_C(  91),  INT8_C(  83), -INT8_C(  95), -INT8_C(  17),  INT8_C(  39), -INT8_C(  69),
        -INT8_C(  65), -INT8_C(  37), -INT8_C( 112), -INT8_C( 103),  INT8_C(  54), -INT8_C(  77),  INT8_C(  39), -INT8_C(  98),
        -INT8_C(  45), -INT8_C( 124), -INT8_C(  82), -INT8_C( 119), -INT8_C(  44), -INT8_C(  17), -INT8_C(  83), -INT8_C(  33),
         INT8_C(  89), -INT8_C(  29),  INT8_C( 105),  INT8_C(  39), -INT8_C(  32), -INT8_C(  38),  INT8_C(  98), -INT8_C(  47) },
      { -INT8_C( 109),  INT8_C( 105), -INT8_C(  21),  INT8_C(  27),  INT8_C(   2), -INT8_C( 112), -INT8_C(  93),  INT8_C(  15),
        -INT8_C(  75), -INT8_C(   2),  INT8_C(  65), -INT8_C( 112), -INT8_C(   6),  INT8_C(  59), -INT8_C(  94),  INT8_C( 123),
         INT8_C(  35), -INT8_C(  22), -INT8_C(  85),  INT8_C( 118),  INT8_C(  60),  INT8_C(  28),  INT8_C(  72),  INT8_C( 106),
        -INT8_C( 104), -INT8_C(  83), -INT8_C(  41), -INT8_C(  31),  INT8_C(  80),  INT8_C(  85), -INT8_C(  69),  INT8_C(  37) },
      {      INT8_MIN,  INT8_C(   0), -INT8_C( 112),  INT8_C(   0), -INT8_C(  93),      INT8_MIN, -INT8_C(  54),  INT8_C(   0),
         INT8_C(   0), -INT8_C(  39), -INT8_C(  47),  INT8_C(   0),  INT8_C(  48), -INT8_C(  18), -INT8_C(  55),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0) } },
    { UINT32_C(     38151),
      {  INT8_C(  24),  INT8_C(  22),  INT8_C( 106),  INT8_C(  19), -INT8_C(  11),  INT8_C(  73), -INT8_C(  76), -INT8_C( 100),
        -INT8_C(  66), -INT8_C(  18),  INT8_C(   0),  INT8_C( 116), -INT8_C(  99),  INT8_C(   9), -INT8_C( 107), -INT8_C(  41),
         INT8_C(   2), -INT8_C(  51), -INT8_C( 119), -INT8_C(  50),  INT8_C(  52), -INT8_C(  79), -INT8_C( 112), -INT8_C( 105),
         INT8_C( 121), -INT8_C(   1), -INT8_C(  33), -INT8_C(  59), -INT8_C(  40),  INT8_C( 113), -INT8_C( 108), -INT8_C(  42) },
      { -INT8_C( 111), -INT8_C(   9), -INT8_C(  21),      INT8_MIN,  INT8_C(  68), -INT8_C(  45), -INT8_C(  26),  INT8_C(  55),
         INT8_C(  54), -INT8_C( 115), -INT8_C(  52), -INT8_C( 115),  INT8_C(  11), -INT8_C(  27),  INT8_C(  14),  INT8_C(  69),
         INT8_C( 105), -INT8_C(  79), -INT8_C(  62), -INT8_C(   2),  INT8_C(  99),  INT8_C(  81), -INT8_C( 127),  INT8_C(   0),
        -INT8_C(  25),  INT8_C(  66),  INT8_C(  49), -INT8_C(  21),  INT8_C(   3),  INT8_C( 110), -INT8_C(  88), -INT8_C(  74) },
      { -INT8_C(  87),  INT8_C(  13),  INT8_C(  85),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
        -INT8_C(  12),  INT8_C(   0), -INT8_C(  52),  INT8_C(   0), -INT8_C(  88),  INT8_C(   0),  INT8_C(   0),  INT8_C(  28),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
         INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0) } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m256i a = simde_x_mm256_loadu_epi8(test_vec[i].a);
    simde__m256i b = simde_x_mm256_loadu_epi8(test_vec[i].b);
    simde__m256i r = simde_mm256_maskz_adds_epi8(test_vec[i].k, a, b);
    simde_test_x86_assert_equal_i8x32(r, simde_x_mm256_loadu_epi8(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_mm256_mask_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const int16_t src[16];
    const simde__mmask16 k;
    const int16_t a[16];
    const int16_t b[16];
    const int16_t r[16];
  } test_vec[] = {
    { { -INT16_C( 13954), -INT16_C( 13566),  INT16_C( 13346), -INT16_C( 19324),  INT16_C( 20767), -INT16_C( 25591), -INT16_C( 15670),  INT16_C( 22319),
        -INT16_C( 15735),  INT16_C( 15143),  INT16_C( 21746), -INT16_C( 32557),  INT16_C( 16862),  INT16_C( 27014), -INT16_C(  1471), -INT16_C( 16462) },
      UINT16_C(46276),
      { -INT16_C(  6518),  INT16_C(  3817),  INT16_C(  2202), -INT16_C( 23713),  INT16_C( 10660), -INT16_C( 11419), -INT16_C(  4480), -INT16_C( 22379),
        -INT16_C( 30679), -INT16_C(   516), -INT16_C(  9720), -INT16_C( 28866),  INT16_C( 32579), -INT16_C(  2679),  INT16_C( 19774), -INT16_C( 13910) },
      { -INT16_C( 27853), -INT16_C( 12841),  INT16_C( 14235),  INT16_C( 16240), -INT16_C( 10912), -INT16_C(  7917), -INT16_C( 22332), -INT16_C(  4727),
        -INT16_C( 31440),  INT16_C( 14826),  INT16_C( 10591), -INT16_C( 23864),  INT16_C( 20904), -INT16_C(  6249),  INT16_C( 16799), -INT16_C( 11600) },
      { -INT16_C( 13954), -INT16_C( 13566),  INT16_C( 16437), -INT16_C( 19324),  INT16_C( 20767), -INT16_C( 25591), -INT16_C( 26812), -INT16_C( 27106),
        -INT16_C( 15735),  INT16_C( 15143),  INT16_C(   871), -INT16_C( 32557),       INT16_MAX, -INT16_C(  8928), -INT16_C(  1471), -INT16_C( 25510) } },
    { { -INT16_C( 30764),  INT16_C( 28576),  INT16_C(  4286),  INT16_C(  8111), -INT16_C( 15642), -INT16_C( 22016), -INT16_C( 30358), -INT16_C( 25705),
        -INT16_C( 32242),  INT16_C( 28116), -INT16_C( 25429),  INT16_C( 21263), -INT16_C( 22803), -INT16_C( 29638), -INT16_C(  5400), -INT16_C( 17313) },
      UINT16_C(65394),
      {  INT16_C( 12332), -INT16_C(  9457), -INT16_C(  2737),  INT16_C( 20381),  INT16_C(  1951),  INT16_C( 14296), -INT16_C(  6494),  INT16_C( 30393),
         INT16_C( 25683),  INT16_C( 25106),  INT16_C(   183), -INT16_C(  3575), -INT16_C(  3700), -INT16_C(  5156),  INT16_C( 20141), -INT16_C(  9750) },
      { -INT16_C(  1409), -INT16_C( 12620),  INT16_C( 20975), -INT16_C( 28898), -INT16_C(  2471), -INT16_C(  1082),  INT16_C( 32733),  INT16_C( 12402),
        -INT16_C( 31517), -INT16_C( 25965), -INT16_C( 25468),  INT16_C(  4492),  INT16_C( 27021),  INT16_C( 15100), -INT16_C(  6217),  INT16_C( 13844) },
      { -INT16_C( 30764), -INT16_C( 22077),  INT16_C(  4286),  INT16_C(  8111), -INT16_C(   520),  INT16_C( 13214),  INT16_C( 26239), -INT16_C( 25705),
        -INT16_C(  5834), -INT16_C(   859), -INT16_C( 25285),  INT16_C(   917),  INT16_C( 23321),  INT16_C(  9944),  INT16_C( 13924),  INT16_C(  4094) } },
    { { -INT16_C( 14111), -INT16_C( 12283),  INT16_C(  8986),  INT16_C( 29535),  INT16_C(  9497), -INT16_C(  2450), -INT16_C(  8028), -INT16_C( 30937),
        -INT16_C( 17819), -INT16_C(  5854), -INT16_C( 20906), -INT16_C(  7174), -INT16_C(  2281), -INT16_C( 12515),  INT16_C( 12766), -INT16_C( 16635) },
      UINT16_C( 2810),
      {  INT16_C(  5263), -INT16_C(  4307),  INT16_C( 18311), -INT16_C(  2796), -INT16_C( 18115),  INT16_C( 25814),  INT16_C( 15168),  INT16_C( 25118),
         INT16_C( 29732),  INT16_C(  7953),  INT16_C( 10327),  INT16_C( 29974), -INT16_C(  2825), -INT16_C(   602), -INT16_C( 24397),  INT16_C( 16903) },
      {  INT16_C( 13748),  INT16_C( 15153),  INT16_C( 18044), -INT16_C( 18127),  INT16_C(  2047),  INT16_C( 16158),  INT16_C( 15426),  INT16_C( 26274),
        -INT16_C( 19535),  INT16_C(  2181), -INT16_C( 25637), -INT16_C( 11395),  INT16_C(  9359),  INT16_C( 17104), -INT16_C( 10300),  INT16_C( 31109) },
      { -INT16_C( 14111),  INT16_C( 10846),  INT16_C(  8986), -INT16_C( 20923), -INT16_C( 16068),       INT16_MAX,  INT16_C( 30594),       INT16_MAX,
        -INT16_C( 17819),  INT16_C( 10134), -INT16_C( 20906),  INT16_C( 18579), -INT16_C(  2281), -INT16_C( 12515),  INT16_C( 12766), -INT16_C( 16635) } },
    { { -INT16_C( 18932), -INT16_C( 30540), -INT16_C(  6660), -INT16_C(  1214),  INT16_C( 24812),  INT16_C( 11835), -INT16_C(  8804),  INT16_C( 19861),
         INT16_C(  6800),  INT16_C( 27478), -INT16_C( 11338),  INT16_C( 17726),  INT16_C(  3831), -INT16_C( 17272),  INT16_C(  3558), -INT16_C(  3531) },
      UINT16_C(59843),
      { -INT16_C( 16261), -INT16_C( 16945), -INT16_C( 17477), -INT16_C(  2531), -INT16_C( 17942),  INT16_C( 32723),  INT16_C( 25351),  INT16_C( 23961),
         INT16_C( 20431),  INT16_C(  3376),  INT16_C( 10389),  INT16_C(  7452),  INT16_C(   740),  INT16_C(  6442), -INT16_C(  4620),  INT16_C( 28418) },
      { -INT16_C( 11859),  INT16_C( 26924),  INT16_C( 18829),  INT16_C( 30559),  INT16_C( 13059),  INT16_C(  2806), -INT16_C( 28778),  INT16_C( 25959),
        -INT16_C( 26657),  INT16_C( 29811), -INT16_C( 28737), -INT16_C( 23663), -INT16_C( 17519), -INT16_C( 31300), -INT16_C( 16472),  INT16_C( 22261) },
      { -INT16_C( 28120),  INT16_C(  9979), -INT16_C(  6660), -INT16_C(  1214),  INT16_C( 24812),  INT16_C( 11835), -INT16_C(  3427),       INT16_MAX,
        -INT16_C(  6226),  INT16_C( 27478), -INT16_C( 11338), -INT16_C( 16211),  INT16_C(  3831), -INT16_C( 24858), -INT16_C( 21092),       INT16_MAX } },
    { {  INT16_C(  8592),  INT16_C(  7615),  INT16_C(  7787),  INT16_C( 28308), -INT16_C( 30127), -INT16_C(  6024), -INT16_C(  8422), -INT16_C(  1715),
        -INT16_C( 16266),  INT16_C( 13933), -INT16_C(   433), -INT16_C(  7975), -INT16_C( 26951),  INT16_C( 24934),  INT16_C( 23381), -INT16_C(  6729) },
      UINT16_C(30332),
      { -INT16_C(  6397), -INT16_C( 26731), -INT16_C(  6571), -INT16_C( 13022),  INT16_C( 15566),  INT16_C(  7340),  INT16_C(  9013), -INT16_C( 23844),
         INT16_C( 11353),  INT16_C( 12960),  INT16_C( 22796),  INT16_C( 29384),  INT16_C(  7610),  INT16_C( 29389),  INT16_C( 18947),  INT16_C(  1768) },
      {  INT16_C( 32049), -INT16_C( 30819), -INT16_C( 16540),  INT16_C( 12884),  INT16_C(   507),  INT16_C( 12366),  INT16_C( 11044),  INT16_C( 32210),
         INT16_C( 29271),  INT16_C( 25519),  INT16_C( 30923), -INT16_C( 31018), -INT16_C( 23659), -INT16_C( 26376), -INT16_C(  7955),  INT16_C(  8094) },
      {  INT16_C(  8592),  INT16_C(  7615), -INT16_C( 23111), -INT16_C(   138),  INT16_C( 16073),  INT16_C( 19706),  INT16_C( 20057), -INT16_C(  1715),
        -INT16_C( 16266),       INT16_MAX,       INT16_MAX, -INT16_C(  7975), -INT16_C( 16049),  INT16_C(  3013),  INT16_C( 10992), -INT16_C(  6729) } },
    { {  INT16_C( 15454), -INT16_C( 15706), -INT16_C(  1285), -INT16_C(  2060),  INT16_C( 17403),  INT16_C(  7975), -INT16_C(  1426), -INT16_C( 14948),
         INT16_C( 19564),  INT16_C( 14376), -INT16_C(   316),  INT16_C( 22974), -INT16_C( 18782), -INT16_C( 28686), -INT16_C( 28522), -INT16_C(  2898) },
      UINT16_C(21708),
      { -INT16_C( 14154), -INT16_C( 21681),  INT16_C( 19135), -INT16_C(  6418),  INT16_C( 23658),  INT16_C(  1760),  INT16_C( 19745),  INT16_C( 18770),
         INT16_C(  5765),  INT16_C( 17224), -INT16_C(  5520),  INT16_C( 25337), -INT16_C( 28807),  INT16_C( 10482), -INT16_C( 16508),  INT16_C( 14972) },
      { -INT16_C( 13433),  INT16_C( 18149), -INT16_C( 11498), -INT16_C( 32724),  INT16_C(  3375),  INT16_C( 20614), -INT16_C(  9894), -INT16_C(  8294),
        -INT16_C(  7441),  INT16_C( 24354),  INT16_C(  7116),  INT16_C( 17857), -INT16_C( 19286),  INT16_C( 11885), -INT16_C(  5517), -INT16_C(  1431) },
      {  INT16_C( 15454), -INT16_C( 15706),  INT16_C(  7637),       INT16_MIN,  INT16_C( 17403),  INT16_C(  7975),  INT16_C(  9851),  INT16_C( 10476),
         INT16_C( 19564),  INT16_C( 14376),  INT16_C(  1596),  INT16_C( 22974),       INT16_MIN, -INT16_C( 28686), -INT16_C( 22025), -INT16_C(  2898) } },
    { {  INT16_C( 20149), -INT16_C( 13504),  INT16_C( 27682),  INT16_C( 20811), -INT16_C( 11655), -INT16_C( 11358),  INT16_C( 15531), -INT16_C( 25934),
        -INT16_C( 11234), -INT16_C(  5382), -INT16_C( 17425), -INT16_C( 26065), -INT16_C( 25233), -INT16_C(  7480),  INT16_C( 12679),  INT16_C( 15580) },
      UINT16_C( 7296),
      { -INT16_C( 24056),  INT16_C( 21385),  INT16_C(   755), -INT16_C( 27355), -INT16_C( 12074), -INT16_C( 30511), -INT16_C(  4245),  INT16_C( 25949),
         INT16_C( 19673),  INT16_C(  2336), -INT16_C( 28442), -INT16_C( 20570),  INT16_C( 11634),  INT16_C( 20448),  INT16_C( 24681),  INT16_C( 29035) },
      { -INT16_C(  3070), -INT16_C(  2363), -INT16_C(  5385), -INT16_C( 12917),  INT16_C( 23995),  INT16_C(  9813), -INT16_C( 19892),  INT16_C(  9867),
        -INT16_C( 21505), -INT16_C(  6865), -INT16_C( 10949), -INT16_C( 20844),  INT16_C( 29954),  INT16_C( 27645),  INT16_C( 26837), -INT16_C( 10019) },
      {  INT16_C( 20149), -INT16_C( 13504),  INT16_C( 27682),  INT16_C( 20811), -INT16_C( 11655), -INT16_C( 11358),  INT16_C( 15531),       INT16_MAX,
        -INT16_C( 11234), -INT16_C(  5382),       INT16_MIN,       INT16_MIN,       INT16_MAX, -INT16_C(  7480),  INT16_C( 12679),  INT16_C( 15580) } },
    { { -INT16_C( 23971),  INT16_C( 21710),  INT16_C( 22924),  INT16_C( 18209),  INT16_C( 30390),  INT16_C(   877), -INT16_C(  2007),  INT16_C( 10281),
         INT16_C( 22692), -INT16_C(  8435), -INT16_C( 24019),  INT16_C( 12173), -INT16_C( 30185), -INT16_C(  4966),  INT16_C( 30707),  INT16_C( 20676) },
      UINT16_C(37401),
      { -INT16_C( 22876), -INT16_C( 14868), -INT16_C( 23827),  INT16_C( 23355),  INT16_C( 25765), -INT16_C( 12717), -INT16_C(  2164), -INT16_C( 26074),
         INT16_C( 21463),  INT16_C( 25660),  INT16_C( 21378),  INT16_C(  7663), -INT16_C(  7617),  INT16_C(  1172), -INT16_C( 20942), -INT16_C( 10602) },
      { -INT16_C( 32172),  INT16_C( 16795), -INT16_C( 10715), -INT16_C( 13668), -INT16_C(  4037), -INT16_C( 14439), -INT16_C( 16409), -INT16_C( 16799),
        -INT16_C( 25325), -INT16_C( 27357),  INT16_C(  4848),  INT16_C( 12466),  INT16_C( 18420),  INT16_C(  9780), -INT16_C( 13579),  INT16_C( 18940) },
      {       INT16_MIN,  INT16_C( 21710),  INT16_C( 22924),  INT16_C(  9687),  INT16_C( 21728),  INT16_C(   877), -INT16_C(  2007),  INT16_C( 10281),
         INT16_C( 22692), -INT16_C(  1697), -INT16_C( 24019),  INT16_C( 12173),  INT16_C( 10803), -INT16_C(  4966),  INT16_C( 30707),  INT16_C(  8338) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m256i src = simde_x_mm256_loadu_epi16(test_vec[i].src);
    simde__m256i a = simde_x_mm256_loadu_epi16(test_vec[i].a);
    simde__m256i b = simde_x_mm256_loadu_epi16(test_vec[i].b);
    simde__m256i r = simde_mm256_mask_adds_epi16(src, test_vec[i].k, a, b);
    simde_test_x86_assert_equal_i16x16(r, simde_x_mm256_loadu_epi16(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_mm256_maskz_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const simde__mmask16 k;
    const int16_t a[16];
    const int16_t b[16];
    const int16_t r[16];
  } test_vec[] = {
    { UINT16_C(31891),
      { -INT16_C( 23134), -INT16_C( 31842),  INT16_C( 15981),  INT16_C( 19589), -INT16_C( 21450), -INT16_C( 21374), -INT16_C(  7737), -INT16_C(   739),
        -INT16_C( 31345),  INT16_C( 27262),  INT16_C( 24141), -INT16_C(   681),  INT16_C( 10726), -INT16_C( 29885), -INT16_C( 10531),  INT16_C( 32519) },
      { -INT16_C( 23173), -INT16_C(  5886), -INT16_C( 30749),  INT16_C(  6453), -INT16_C( 18636), -INT16_C(  1082), -INT16_C(  7272),  INT16_C( 10232),
         INT16_C( 30312), -INT16_C( 19055), -INT16_C(  5932), -INT16_C( 17486), -INT16_C(  2799), -INT16_C(  4538),  INT16_C( 19915),  INT16_C( 18286) },
      {       INT16_MIN,       INT16_MIN,  INT16_C(     0),  INT16_C(     0),       INT16_MIN,  INT16_C(     0),  INT16_C(     0),  INT16_C(  9493),
         INT16_C(     0),  INT16_C(     0),  INT16_C( 18209), -INT16_C( 18167),  INT16_C(  7927),       INT16_MIN,  INT16_C(  9384),  INT16_C(     0) } },
    { UINT16_C(28914),
      { -INT16_C( 10960),  INT16_C( 26104),  INT16_C( 11503), -INT16_C( 19172), -INT16_C( 19417),  INT16_C(  8344),  INT16_C(   475),  INT16_C( 27798),
         INT16_C( 27574),  INT16_C( 26964),  INT16_C( 25894),  INT16_C( 27742),  INT16_C( 10836), -INT16_C( 15687), -INT16_C( 21647), -INT16_C( 24270) },
      {  INT16_C( 10880),  INT16_C( 28422),  INT16_C(  8790),  INT16_C( 32292), -INT16_C( 16938), -INT16_C( 20066),  INT16_C( 13502),  INT16_C( 29725),
         INT16_C( 29087), -INT16_C( 14883),  INT16_C( 15574),  INT16_C( 10801), -INT16_C(  5530), -INT16_C( 10260),  INT16_C(  8085),  INT16_C(  5752) },
      {  INT16_C(     0),       INT16_MAX,  INT16_C(     0),  INT16_C(     0),       INT16_MIN, -INT16_C( 11722),  INT16_C( 13977),       INT16_MAX,
         INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(  5306), -INT16_C( 25947), -INT16_C( 13562),  INT16_C(     0) } },
    { UINT16_C(32329),
      { -INT16_C( 24443), -INT16_C( 21856),  INT16_C( 30238), -INT16_C( 17305),  INT16_C(  9511),  INT16_C( 17648), -INT16_C( 28519),  INT16_C( 30645),
        -INT16_C( 29867), -INT16_C( 30797),  INT16_C(  6582), -INT16_C( 23951),  INT16_C(  2032),  INT16_C( 26817),  INT16_C(  2845), -INT16_C( 23834) },
      { -INT16_C( 31061), -INT16_C( 14004), -INT16_C( 19460),  INT16_C(  9093),  INT16_C( 30168),  INT16_C( 29287),  INT16_C(  7173),  INT16_C( 23529),
        -INT16_C( 25433),  INT16_C( 24034),  INT16_C( 21429), -INT16_C( 23296), -INT16_C( 16038),  INT16_C( 30477), -INT16_C(  3124),  INT16_C( 30490) },
      {       INT16_MIN,  INT16_C(     0),  INT16_C(     0), -INT16_C(  8212),  INT16_C(     0),  INT16_C(     0), -INT16_C( 21346),  INT16_C(     0),
         INT16_C(     0), -INT16_C(  6763),  INT16_C( 28011),       INT16_MIN, -INT16_C( 14006),       INT16_MAX, -INT16_C(   279),  INT16_C(     0) } },
    { UINT16_C(26233),
      {  INT16_C( 30016), -INT16_C( 15078), -INT16_C(  3432), -INT16_C(   197),  INT16_C( 16484),  INT16_C( 19739), -INT16_C( 15717),  INT16_C( 32233),
        -INT16_C( 25056),  INT16_C(  8401),  INT16_C( 11075),  INT16_C( 20705), -INT16_C( 20829), -INT16_C( 17085), -INT16_C( 17371),  INT16_C( 26147) },
      {  INT16_C( 15665), -INT16_C( 14037),  INT16_C( 26160), -INT16_C( 27448), -INT16_C(  7257),  INT16_C( 17122), -INT16_C( 13402), -INT16_C( 14656),
        -INT16_C( 28310), -INT16_C( 21018), -INT16_C( 14404),  INT16_C( 24574),  INT16_C( 16757), -INT16_C( 25828),  INT16_C( 16638),  INT16_C( 12033) },
      {       INT16_MAX,  INT16_C(     0),  INT16_C(     0), -INT16_C( 27645),  INT16_C(  9227),       INT16_MAX, -INT16_C( 29119),  INT16_C(     0),
         INT16_C(     0), -INT16_C( 12617), -INT16_C(  3329),  INT16_C(     0),  INT16_C(     0),       INT16_MIN, -INT16_C(   733),  INT16_C(     0) } },
    { UINT16_C(11389),
      { -INT16_C( 20999), -INT16_C( 15981),  INT16_C( 14914),  INT16_C(  9381),  INT16_C( 19324),  INT16_C( 15599),  INT16_C( 22801), -INT16_C(  2099),
        -INT16_C( 30201),  INT16_C(  1470),  INT16_C( 13545),  INT16_C(  1606),  INT16_C( 17615), -INT16_C( 12218), -INT16_C( 15500),  INT16_C( 28156) },
      { -INT16_C( 28815), -INT16_C( 19666), -INT16_C( 11319),  INT16_C( 18135), -INT16_C( 14818),  INT16_C( 12162),  INT16_C( 20512),  INT16_C( 10022),
        -INT16_C(  6694), -INT16_C( 15572),  INT16_C( 29209), -INT16_C(  5943),  INT16_C(  4023),  INT16_C( 11192), -INT16_C( 19245),  INT16_C( 17560) },
      {       INT16_MIN,  INT16_C(     0),  INT16_C(  3595),  INT16_C( 27516),  INT16_C(  4506),  INT16_C( 27761),       INT16_MAX,  INT16_C(     0),
         INT16_C(     0),  INT16_C(     0),       INT16_MAX, -INT16_C(  4337),  INT16_C(     0), -INT16_C(  1026),  INT16_C(     0),  INT16_C(     0) } },
    { UINT16_C(50756),
      {  INT16_C(  3575), -INT16_C( 12646), -INT16_C( 18349), -INT16_C( 10604), -INT16_C( 19224),  INT16_C(  3622),  INT16_C(   219),  INT16_C(  2035),
         INT16_C(  3267), -INT16_C( 29318),  INT16_C( 12788), -INT16_C( 21348),  INT16_C( 28508), -INT16_C(  2975), -INT16_C( 23117), -INT16_C( 21830) },
      {  INT16_C( 21682),  INT16_C(  1656),  INT16_C(  3341), -INT16_C(  2596),  INT16_C(   705), -INT16_C( 25341), -INT16_C(  2302), -INT16_C( 14940),
         INT16_C(  7683), -INT16_C(  1966), -INT16_C(  4273), -INT16_C( 21596),  INT16_C(  1374),  INT16_C(  4767),  INT16_C( 23210),  INT16_C( 23996) },
      {  INT16_C(     0),  INT16_C(     0), -INT16_C( 15008),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C(  2083),  INT16_C(     0),
         INT16_C(     0), -INT16_C( 31284),  INT16_C(  8515),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(    93),  INT16_C(  2166) } },
    { UINT16_C(13742),
      { -INT16_C( 17565),  INT16_C( 16194),  INT16_C(   944), -INT16_C( 19391),  INT16_C( 17312),  INT16_C( 17835), -INT16_C( 20984),  INT16_C( 23395),
        -INT16_C( 19546),  INT16_C( 19274), -INT16_C( 22434), -INT16_C(   432), -INT16_C(  1094),  INT16_C( 30552),  INT16_C(  1624), -INT16_C( 17492) },
      { -INT16_C(  4414),  INT16_C( 29434),  INT16_C( 15345), -INT16_C( 28122), -INT16_C( 11906), -INT16_C( 31017),  INT16_C( 14976),  INT16_C(  9953),
         INT16_C( 11245),  INT16_C( 19569), -INT16_C( 15660), -INT16_C( 29110), -INT16_C( 23875),  INT16_C(  5381), -INT16_C( 20056),  INT16_C( 27344) },
      {  INT16_C(     0),       INT16_MAX,  INT16_C( 16289),       INT16_MIN,  INT16_C(     0), -INT16_C( 13182),  INT16_C(     0),       INT16_MAX,
        -INT16_C(  8301),  INT16_C(     0),       INT16_MIN,  INT16_C(     0), -INT16_C( 24969),       INT16_MAX,  INT16_C(     0),  INT16_C(     0) } },
    { UINT16_C(51871),
      { -INT16_C( 28195),  INT16_C(   773), -INT16_C( 31965), -INT16_C(  1323),  INT16_C( 21769), -INT16_C(  5324),  INT16_C(  8827), -INT16_C(  4842),
        -INT16_C(  5522), -INT16_C( 18257),  INT16_C( 27769),  INT16_C( 32346),  INT16_C(   641),  INT16_C( 20784), -INT16_C( 12435),  INT16_C( 18971) },
      {  INT16_C(  8288), -INT16_C( 31923),  INT16_C(  8867), -INT16_C( 21379), -INT16_C( 19849), -INT16_C(  3177), -INT16_C( 20780),  INT16_C( 17120),
        -INT16_C( 28776),  INT16_C(  4602),  INT16_C( 21755),  INT16_C( 31888), -INT16_C( 16298), -INT16_C( 15411), -INT16_C(  6001), -INT16_C(  4083) },
      { -INT16_C( 19907), -INT16_C( 31150), -INT16_C( 23098), -INT16_C( 22702),  INT16_C(  1920),  INT16_C(     0),  INT16_C(     0),  INT16_C( 12278),
         INT16_C(     0), -INT16_C( 13655),  INT16_C(     0),       INT16_MAX,  INT16_C(     0),  INT16_C(     0), -INT16_C( 18436),  INT16_C( 14888) } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m256i a = simde_x_mm256_loadu_epi16(test_vec[i].a);
    simde__m256i b = simde_x_mm256_loadu_epi16(test_vec[i].b);
    simde__m256i r = simde_mm256_maskz_adds_epi16(test_vec[i].k, a, b);
    simde_test_x86_assert_equal_i16x16(r, simde_x_mm256_loadu_epi16(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_mm512_adds_epi8(SIMDE_MUNIT_TEST_ARGS) {
  const struct {
    simde__m512i a;
    simde__m512i b;
    simde__m512i r;
  } test_vec[8] = {
    { simde_mm512_set_epi8(INT8_C( -30), INT8_C( -16), INT8_C( -64), INT8_C( 113),
                           INT8_C(  51), INT8_C(-115), INT8_C(  19), INT8_C( -80),
                           INT8_C(-110), INT8_C( -62), INT8_C( -91), INT8_C(   8),
                           INT8_C(  11), INT8_C( -49), INT8_C( -43), INT8_C(-101),
                           INT8_C(  16), INT8_C(  61), INT8_C(  -2), INT8_C(-100),
                           INT8_C(   1), INT8_C( -80), INT8_C( 127), INT8_C(-105),
                           INT8_C( -74), INT8_C(-126), INT8_C( 122), INT8_C(  30),
                           INT8_C( -73), INT8_C(  48), INT8_C( -33), INT8_C(   2),
                           INT8_C( -82), INT8_C( -10), INT8_C(  33), INT8_C(  20),
                           INT8_C(-120), INT8_C(-120), INT8_C( -46), INT8_C( -54),
                           INT8_C( -43), INT8_C(  63), INT8_C(  81), INT8_C( 103),
                           INT8_C( 118), INT8_C( -84), INT8_C(  76), INT8_C(  47),
                           INT8_C( 101), INT8_C( -83), INT8_C(  15), INT8_C(  23),
                           INT8_C(  36), INT8_C(-116), INT8_C( -88), INT8_C( -45),
                           INT8_C(  -6), INT8_C(  86), INT8_C(  20), INT8_C(  39),
                           INT8_C( 117), INT8_C(  80), INT8_C(  97), INT8_C(  41)),
      simde_mm512_set_epi8(INT8_C( 122), INT8_C(  43), INT8_C(  38), INT8_C(  97),
                           INT8_C(  38), INT8_C(  68), INT8_C(  88), INT8_C(  56),
                           INT8_C( -39), INT8_C(  61), INT8_C( -57), INT8_C( -66),
                           INT8_C(-121), INT8_C(  29), INT8_C( 110), INT8_C( 127),
                           INT8_C(-115), INT8_C(  16), INT8_C( -46), INT8_C(  65),
                           INT8_C( -36), INT8_C(  26), INT8_C(  12), INT8_C( -79),
                           INT8_C( -66), INT8_C( -28), INT8_C( -67), INT8_C( -79),
                           INT8_C( -60), INT8_C( -13), INT8_C(  74), INT8_C(  25),
                           INT8_C(  46), INT8_C(   8), INT8_C(  70), INT8_C( 106),
                           INT8_C(-119), INT8_C(   0), INT8_C( -96), INT8_C( -51),
                           INT8_C( -50), INT8_C(  93), INT8_C(  92), INT8_C(  65),
                           INT8_C( -96), INT8_C(-126), INT8_C(   4), INT8_C(   9),
                           INT8_C(  26), INT8_C(-119), INT8_C(  93), INT8_C(  15),
                           INT8_C(-115), INT8_C(  77), INT8_C( 125), INT8_C( -62),
                           INT8_C(  77), INT8_C( -22), INT8_C( 101), INT8_C(  83),
                           INT8_C(  45), INT8_C( -68), INT8_C(  97), INT8_C( -19)),
      simde_mm512_set_epi8(INT8_C(  92), INT8_C(  27), INT8_C( -26), INT8_C( 127),
                           INT8_C(  89), INT8_C( -47), INT8_C( 107), INT8_C( -24),
                           INT8_C(-128), INT8_C(  -1), INT8_C(-128), INT8_C( -58),
                           INT8_C(-110), INT8_C( -20), INT8_C(  67), INT8_C(  26),
                           INT8_C( -99), INT8_C(  77), INT8_C( -48), INT8_C( -35),
                           INT8_C( -35), INT8_C( -54), INT8_C( 127), INT8_C(-128),
                           INT8_C(-128), INT8_C(-128), INT8_C(  55), INT8_C( -49),
                           INT8_C(-128), INT8_C(  35), INT8_C(  41), INT8_C(  27),
                           INT8_C( -36), INT8_C(  -2), INT8_C( 103), INT8_C( 126),
                           INT8_C(-128), INT8_C(-120), INT8_C(-128), INT8_C(-105),
                           INT8_C( -93), INT8_C( 127), INT8_C( 127), INT8_C( 127),
                           INT8_C(  22), INT8_C(-128), INT8_C(  80), INT8_C(  56),
                           INT8_C( 127), INT8_C(-128), INT8_C( 108), INT8_C(  38),
                           INT8_C( -79), INT8_C( -39), INT8_C(  37), INT8_C(-107),
                           INT8_C(  71), INT8_C(  64), INT8_C( 121), INT8_C( 122),
                           INT8_C( 127), INT8_C(  12), INT8_C( 127), INT8_C(  22)) },
    { simde_mm512_set_epi8(INT8_C(  60), INT8_C(  96), INT8_C(-106), INT8_C(-115),
                           INT8_C(  31), INT8_C(-108), INT8_C(  15), INT8_C(  63),
                           INT8_C( -77), INT8_C( 125), INT8_C(  41), INT8_C( -80),
                           INT8_C(  36), INT8_C(-118), INT8_C(-116), INT8_C( -63),
                           INT8_C( -44), INT8_C(  70), INT8_C(  99), INT8_C(  48),
                           INT8_C(  67), INT8_C(  43), INT8_C(  83), INT8_C(  53),
                           INT8_C(  60), INT8_C(  57), INT8_C(-118), INT8_C(  55),
                           INT8_C( -62), INT8_C( -42), INT8_C(  19), INT8_C(  52),
                           INT8_C( -37), INT8_C( -32), INT8_C(  33), INT8_C(-114),
                           INT8_C( -96), INT8_C(  53), INT8_C(  18), INT8_C( -37),
                           INT8_C(   6), INT8_C( -87), INT8_C( -11), INT8_C( -10),
                           INT8_C(  -4), INT8_C(  84), INT8_C( 104), INT8_C(  55),
                           INT8_C(  92), INT8_C( 117), INT8_C(  16), INT8_C( 115),
                           INT8_C(  83), INT8_C(  80), INT8_C(-125), INT8_C(  64),
                           INT8_C(  74), INT8_C(  -9), INT8_C( -62), INT8_C(  67),
                           INT8_C( 102), INT8_C(  66), INT8_C( -86), INT8_C(-112)),
      simde_mm512_set_epi8(INT8_C( -97), INT8_C(  52), INT8_C( -91), INT8_C(   7),
                           INT8_C(  -1), INT8_C( -19), INT8_C(  38), INT8_C(  15),
                           INT8_C(  76), INT8_C(  63), INT8_C(  10), INT8_C(  18),
                           INT8_C(  54), INT8_C(  73), INT8_C(  15), INT8_C( -54),
                           INT8_C(-114), INT8_C(  63), INT8_C(  44), INT8_C(   4),
                           INT8_C(  41), INT8_C(  90), INT8_C( -78), INT8_C( -67),
                           INT8_C(  95), INT8_C( -14), INT8_C( -10), INT8_C( -44),
                           INT8_C(  53), INT8_C( 102), INT8_C( 127), INT8_C( 120),
                           INT8_C( -89), INT8_C(  10), INT8_C( -36), INT8_C( -50),
                           INT8_C( 118), INT8_C(-106), INT8_C( -52), INT8_C(  76),
                           INT8_C(  66), INT8_C( -36), INT8_C( -79), INT8_C(  91),
                           INT8_C(  14), INT8_C( 103), INT8_C( -73), INT8_C(-123),
                           INT8_C(  68), INT8_C( -54), INT8_C(-103), INT8_C(  38),
                           INT8_C(  58), INT8_C(   0), INT8_C( -62), INT8_C( -76),
                           INT8_C(  93), INT8_C( 119), INT8_C(  14), INT8_C(  84),
                           INT8_C( -83), INT8_C(  76), INT8_C( -47), INT8_C( -53)),
      simde_mm512_set_epi8(INT8_C( -37), INT8_C( 127), INT8_C(-128), INT8_C(-108),
                           INT8_C(  30), INT8_C(-127), INT8_C(  53), INT8_C(  78),
                           INT8_C(  -1), INT8_C( 127), INT8_C(  51), INT8_C( -62),
                           INT8_C(  90), INT8_C( -45), INT8_C(-101), INT8_C(-117),
                           INT8_C(-128), INT8_C( 127), INT8_C( 127), INT8_C(  52),
                           INT8_C( 108), INT8_C( 127), INT8_C(   5), INT8_C( -14),
                           INT8_C( 127), INT8_C(  43), INT8_C(-128), INT8_C(  11),
                           INT8_C(  -9), INT8_C(  60), INT8_C( 127), INT8_C( 127),
                           INT8_C(-126), INT8_C( -22), INT8_C(  -3), INT8_C(-128),
                           INT8_C(  22), INT8_C( -53), INT8_C( -34), INT8_C(  39),
                           INT8_C(  72), INT8_C(-123), INT8_C( -90), INT8_C(  81),
                           INT8_C(  10), INT8_C( 127), INT8_C(  31), INT8_C( -68),
                           INT8_C( 127), INT8_C(  63), INT8_C( -87), INT8_C( 127),
                           INT8_C( 127), INT8_C(  80), INT8_C(-128), INT8_C( -12),
                           INT8_C( 127), INT8_C( 110), INT8_C( -48), INT8_C( 127),
                           INT8_C(  19), INT8_C( 127), INT8_C(-128), INT8_C(-128)) },
    { simde_mm512_set_epi8(INT8_C( -80), INT8_C( 122), INT8_C(-100), INT8_C( 123),
                           INT8_C(  82), INT8_C(-107), INT8_C(  95), INT8_C( -80),
                           INT8_C(-115), INT8_C(-109), INT8_C(  60), INT8_C(  72),
                           INT8_C(  57), INT8_C(  99), INT8_C( -30), INT8_C(-115),
                           INT8_C(  69), INT8_C(  18), INT8_C(  -5), INT8_C(  -6),
                           INT8_C( -90), INT8_C( -20), INT8_C(  17), INT8_C( 121),
                           INT8_C(-100), INT8_C( -55), INT8_C(  90), INT8_C( -42),
                           INT8_C(-113), INT8_C( 119), INT8_C(  44), INT8_C(-123),
                           INT8_C( -39), INT8_C( 114), INT8_C(  37), INT8_C( -84),
                           INT8_C( -88), INT8_C(  15), INT8_C(  23), INT8_C( 114),
                           INT8_C(  63), INT8_C( -61), INT8_C(  22), INT8_C(   8),
                           INT8_C(  54), INT8_C(  19), INT8_C( -34), INT8_C(  18),
                           INT8_C( -36), INT8_C( 104), INT8_C(   1), INT8_C(   5),
                           INT8_C(-116), INT8_C(  79), INT8_C( -20), INT8_C(  -4),
                           INT8_C(  95), INT8_C( 103), INT8_C(   3), INT8_C(  64),
                           INT8_C(  34), INT8_C( -49), INT8_C( -27), INT8_C(  41)),
      simde_mm512_set_epi8(INT8_C(  97), INT8_C(-116), INT8_C( -44), INT8_C( -44),
                           INT8_C(  67), INT8_C( -66), INT8_C(  77), INT8_C(  60),
                           INT8_C(  74), INT8_C( -19), INT8_C(-123), INT8_C( -81),
                           INT8_C( -74), INT8_C( -21), INT8_C( -32), INT8_C(-122),
                           INT8_C(-110), INT8_C( 116), INT8_C( 115), INT8_C(  99),
                           INT8_C(  29), INT8_C(  50), INT8_C(-119), INT8_C(-126),
                           INT8_C( -53), INT8_C(  68), INT8_C( -37), INT8_C(  84),
                           INT8_C(  23), INT8_C( -10), INT8_C(  15), INT8_C(  37),
                           INT8_C( -93), INT8_C(  57), INT8_C(  28), INT8_C(-116),
                           INT8_C(  56), INT8_C(-124), INT8_C( -93), INT8_C( -67),
                           INT8_C(  27), INT8_C(  -1), INT8_C( -70), INT8_C( -30),
                           INT8_C( -39), INT8_C(  59), INT8_C(  76), INT8_C( 108),
                           INT8_C(  13), INT8_C( -29), INT8_C(  60), INT8_C( 106),
                           INT8_C( 106), INT8_C( -77), INT8_C(-102), INT8_C(   3),
                           INT8_C( -18), INT8_C(  23), INT8_C( 113), INT8_C( -97),
                           INT8_C( 109), INT8_C(  81), INT8_C(  42), INT8_C(  93)),
      simde_mm512_set_epi8(INT8_C(  17), INT8_C(   6), INT8_C(-128), INT8_C(  79),
                           INT8_C( 127), INT8_C(-128), INT8_C( 127), INT8_C( -20),
                           INT8_C( -41), INT8_C(-128), INT8_C( -63), INT8_C(  -9),
                           INT8_C( -17), INT8_C(  78), INT8_C( -62), INT8_C(-128),
                           INT8_C( -41), INT8_C( 127), INT8_C( 110), INT8_C(  93),
                           INT8_C( -61), INT8_C(  30), INT8_C(-102), INT8_C(  -5),
                           INT8_C(-128), INT8_C(  13), INT8_C(  53), INT8_C(  42),
                           INT8_C( -90), INT8_C( 109), INT8_C(  59), INT8_C( -86),
                           INT8_C(-128), INT8_C( 127), INT8_C(  65), INT8_C(-128),
                           INT8_C( -32), INT8_C(-109), INT8_C( -70), INT8_C(  47),
                           INT8_C(  90), INT8_C( -62), INT8_C( -48), INT8_C( -22),
                           INT8_C(  15), INT8_C(  78), INT8_C(  42), INT8_C( 126),
                           INT8_C( -23), INT8_C(  75), INT8_C(  61), INT8_C( 111),
                           INT8_C( -10), INT8_C(   2), INT8_C(-122), INT8_C(  -1),
                           INT8_C(  77), INT8_C( 126), INT8_C( 116), INT8_C( -33),
                           INT8_C( 127), INT8_C(  32), INT8_C(  15), INT8_C( 127)) },
    { simde_mm512_set_epi8(INT8_C( -94), INT8_C(  96), INT8_C( -77), INT8_C( -55),
                           INT8_C(  18), INT8_C(  12), INT8_C(  78), INT8_C( -17),
                           INT8_C( -94), INT8_C(  83), INT8_C( -20), INT8_C(-101),
                           INT8_C( -62), INT8_C( -62), INT8_C( -77), INT8_C(  21),
                           INT8_C(  21), INT8_C( -49), INT8_C(-127), INT8_C( -47),
                           INT8_C( -26), INT8_C(  62), INT8_C( -51), INT8_C( -34),
                           INT8_C(   9), INT8_C( -56), INT8_C(  63), INT8_C(   4),
                           INT8_C(  64), INT8_C(  46), INT8_C(  68), INT8_C( -18),
                           INT8_C(-110), INT8_C( 103), INT8_C(-101), INT8_C(  45),
                           INT8_C( -81), INT8_C( 125), INT8_C(   8), INT8_C(  72),
                           INT8_C( -48), INT8_C( -28), INT8_C( 102), INT8_C( -90),
                           INT8_C(-101), INT8_C( -40), INT8_C( -94), INT8_C(-127),
                           INT8_C( -36), INT8_C( -32), INT8_C(  34), INT8_C( -39),
                           INT8_C( -64), INT8_C( 111), INT8_C(  36), INT8_C(  91),
                           INT8_C(  90), INT8_C( -10), INT8_C(  88), INT8_C(-117),
                           INT8_C( 117), INT8_C(-111), INT8_C(-128), INT8_C( -35)),
      simde_mm512_set_epi8(INT8_C(  65), INT8_C(  -2), INT8_C(   4), INT8_C( -77),
                           INT8_C(  33), INT8_C(-119), INT8_C( -36), INT8_C(  95),
                           INT8_C( -54), INT8_C(  57), INT8_C( -15), INT8_C(  20),
                           INT8_C( 119), INT8_C( -56), INT8_C( -57), INT8_C(  22),
                           INT8_C( -23), INT8_C( -56), INT8_C( -77), INT8_C( 114),
                           INT8_C( -25), INT8_C(  85), INT8_C(  65), INT8_C( 124),
                           INT8_C(  80), INT8_C(  94), INT8_C(  -6), INT8_C(-128),
                           INT8_C(  25), INT8_C( -80), INT8_C(  31), INT8_C( -23),
                           INT8_C( 123), INT8_C(-123), INT8_C( -56), INT8_C(  34),
                           INT8_C(  72), INT8_C( -39), INT8_C( -17), INT8_C(  39),
                           INT8_C(  29), INT8_C( -88), INT8_C(  65), INT8_C(  81),
                           INT8_C(-120), INT8_C(  80), INT8_C( -76), INT8_C( -59),
                           INT8_C(  48), INT8_C( -90), INT8_C( -85), INT8_C(  82),
                           INT8_C( 115), INT8_C(-114), INT8_C(  84), INT8_C( -40),
                           INT8_C( -69), INT8_C( -11), INT8_C(-118), INT8_C(  39),
                           INT8_C( -17), INT8_C( -23), INT8_C(   4), INT8_C( -37)),
      simde_mm512_set_epi8(INT8_C( -29), INT8_C(  94), INT8_C( -73), INT8_C(-128),
                           INT8_C(  51), INT8_C(-107), INT8_C(  42), INT8_C(  78),
                           INT8_C(-128), INT8_C( 127), INT8_C( -35), INT8_C( -81),
                           INT8_C(  57), INT8_C(-118), INT8_C(-128), INT8_C(  43),
                           INT8_C(  -2), INT8_C(-105), INT8_C(-128), INT8_C(  67),
                           INT8_C( -51), INT8_C( 127), INT8_C(  14), INT8_C(  90),
                           INT8_C(  89), INT8_C(  38), INT8_C(  57), INT8_C(-124),
                           INT8_C(  89), INT8_C( -34), INT8_C(  99), INT8_C( -41),
                           INT8_C(  13), INT8_C( -20), INT8_C(-128), INT8_C(  79),
                           INT8_C(  -9), INT8_C(  86), INT8_C(  -9), INT8_C( 111),
                           INT8_C( -19), INT8_C(-116), INT8_C( 127), INT8_C(  -9),
                           INT8_C(-128), INT8_C(  40), INT8_C(-128), INT8_C(-128),
                           INT8_C(  12), INT8_C(-122), INT8_C( -51), INT8_C(  43),
                           INT8_C(  51), INT8_C(  -3), INT8_C( 120), INT8_C(  51),
                           INT8_C(  21), INT8_C( -21), INT8_C( -30), INT8_C( -78),
                           INT8_C( 100), INT8_C(-128), INT8_C(-124), INT8_C( -72)) },
    { simde_mm512_set_epi8(INT8_C(  31), INT8_C( -81), INT8_C( 115), INT8_C(  18),
                           INT8_C(  20), INT8_C( -33), INT8_C(-125), INT8_C( -45),
                           INT8_C(  54), INT8_C(  82), INT8_C(  61), INT8_C(  81),
                           INT8_C( 123), INT8_C(  18), INT8_C(  89), INT8_C(  34),
                           INT8_C(  10), INT8_C( -54), INT8_C( -24), INT8_C(  54),
                           INT8_C(  49), INT8_C( -70), INT8_C(   7), INT8_C( -12),
                           INT8_C( 110), INT8_C( -16), INT8_C( -10), INT8_C(   4),
                           INT8_C(   3), INT8_C( -17), INT8_C( -46), INT8_C( -29),
                           INT8_C(  26), INT8_C( -38), INT8_C(-107), INT8_C( -25),
                           INT8_C(  61), INT8_C(  -4), INT8_C( -21), INT8_C( -11),
                           INT8_C( -29), INT8_C(  62), INT8_C( 120), INT8_C(  84),
                           INT8_C( -48), INT8_C( -42), INT8_C( -15), INT8_C( -64),
                           INT8_C( -90), INT8_C( 111), INT8_C(-123), INT8_C(  61),
                           INT8_C(  22), INT8_C( -48), INT8_C(-107), INT8_C( 122),
                           INT8_C(  27), INT8_C( 119), INT8_C( -63), INT8_C( -61),
                           INT8_C( -69), INT8_C(  46), INT8_C(  34), INT8_C(-101)),
      simde_mm512_set_epi8(INT8_C(  44), INT8_C( 101), INT8_C( -48), INT8_C( -49),
                           INT8_C(  63), INT8_C(  93), INT8_C( -48), INT8_C(-122),
                           INT8_C( -67), INT8_C(  27), INT8_C(   1), INT8_C( -55),
                           INT8_C( -79), INT8_C( -44), INT8_C(-115), INT8_C(-126),
                           INT8_C( -42), INT8_C(  29), INT8_C(  66), INT8_C( -83),
                           INT8_C( 108), INT8_C(  -1), INT8_C( -47), INT8_C(-104),
                           INT8_C(  62), INT8_C(  29), INT8_C(   4), INT8_C( -47),
                           INT8_C(  98), INT8_C(-109), INT8_C( -23), INT8_C(  69),
                           INT8_C(-110), INT8_C( -47), INT8_C(  48), INT8_C(-101),
                           INT8_C( -80), INT8_C(-110), INT8_C( -55), INT8_C(  25),
                           INT8_C(  39), INT8_C(  58), INT8_C(   4), INT8_C(-108),
                           INT8_C( -23), INT8_C( -79), INT8_C( 124), INT8_C(  36),
                           INT8_C( 113), INT8_C( 110), INT8_C( 105), INT8_C( 113),
                           INT8_C( -54), INT8_C( -63), INT8_C(  50), INT8_C( -99),
                           INT8_C(  -8), INT8_C( -76), INT8_C( 102), INT8_C(  51),
                           INT8_C(  58), INT8_C(  16), INT8_C( -94), INT8_C( -93)),
      simde_mm512_set_epi8(INT8_C(  75), INT8_C(  20), INT8_C(  67), INT8_C( -31),
                           INT8_C(  83), INT8_C(  60), INT8_C(-128), INT8_C(-128),
                           INT8_C( -13), INT8_C( 109), INT8_C(  62), INT8_C(  26),
                           INT8_C(  44), INT8_C( -26), INT8_C( -26), INT8_C( -92),
                           INT8_C( -32), INT8_C( -25), INT8_C(  42), INT8_C( -29),
                           INT8_C( 127), INT8_C( -71), INT8_C( -40), INT8_C(-116),
                           INT8_C( 127), INT8_C(  13), INT8_C(  -6), INT8_C( -43),
                           INT8_C( 101), INT8_C(-126), INT8_C( -69), INT8_C(  40),
                           INT8_C( -84), INT8_C( -85), INT8_C( -59), INT8_C(-126),
                           INT8_C( -19), INT8_C(-114), INT8_C( -76), INT8_C(  14),
                           INT8_C(  10), INT8_C( 120), INT8_C( 124), INT8_C( -24),
                           INT8_C( -71), INT8_C(-121), INT8_C( 109), INT8_C( -28),
                           INT8_C(  23), INT8_C( 127), INT8_C( -18), INT8_C( 127),
                           INT8_C( -32), INT8_C(-111), INT8_C( -57), INT8_C(  23),
                           INT8_C(  19), INT8_C(  43), INT8_C(  39), INT8_C( -10),
                           INT8_C( -11), INT8_C(  62), INT8_C( -60), INT8_C(-128)) },
    { simde_mm512_set_epi8(INT8_C(  64), INT8_C(  55), INT8_C(  97), INT8_C( -61),
                           INT8_C(  89), INT8_C( 120), INT8_C(  49), INT8_C( 124),
                           INT8_C(  16), INT8_C( 113), INT8_C(  48), INT8_C(  70),
                           INT8_C(  60), INT8_C( -11), INT8_C(  98), INT8_C(  70),
                           INT8_C( 111), INT8_C(  55), INT8_C( -50), INT8_C( -21),
                           INT8_C(-102), INT8_C(   3), INT8_C(  75), INT8_C(  -9),
                           INT8_C(  34), INT8_C(  96), INT8_C(-104), INT8_C(  37),
                           INT8_C(  74), INT8_C(  22), INT8_C(  13), INT8_C(  82),
                           INT8_C(-108), INT8_C(-112), INT8_C(  49), INT8_C( -58),
                           INT8_C( 116), INT8_C(  58), INT8_C( -29), INT8_C(  60),
                           INT8_C( 125), INT8_C( 105), INT8_C( -20), INT8_C(  -4),
                           INT8_C(-106), INT8_C(-111), INT8_C( -29), INT8_C( -32),
                           INT8_C( -43), INT8_C(-103), INT8_C(  84), INT8_C(  40),
                           INT8_C(  63), INT8_C(  88), INT8_C( -74), INT8_C( -49),
                           INT8_C(  10), INT8_C(  50), INT8_C(  38), INT8_C( 108),
                           INT8_C(  42), INT8_C( -40), INT8_C( -81), INT8_C(  31)),
      simde_mm512_set_epi8(INT8_C(-107), INT8_C( 105), INT8_C( -15), INT8_C( -49),
                           INT8_C(  74), INT8_C( -31), INT8_C( -49), INT8_C( 112),
                           INT8_C(-103), INT8_C(  69), INT8_C( -55), INT8_C(-115),
                           INT8_C( -48), INT8_C(  96), INT8_C(  -8), INT8_C( -35),
                           INT8_C( -24), INT8_C( 101), INT8_C(  70), INT8_C( -69),
                           INT8_C(-105), INT8_C( -28), INT8_C( -38), INT8_C( -85),
                           INT8_C( -94), INT8_C(-122), INT8_C( -80), INT8_C(  95),
                           INT8_C(  -1), INT8_C(  87), INT8_C(  21), INT8_C(   6),
                           INT8_C(-103), INT8_C(  38), INT8_C(  15), INT8_C( -98),
                           INT8_C( -27), INT8_C(  57), INT8_C( -76), INT8_C(-112),
                           INT8_C(  77), INT8_C(  -3), INT8_C(  57), INT8_C(   3),
                           INT8_C( 123), INT8_C( -18), INT8_C( -90), INT8_C(-119),
                           INT8_C( 112), INT8_C(  61), INT8_C( -48), INT8_C( -16),
                           INT8_C( -36), INT8_C(-125), INT8_C( -10), INT8_C(  77),
                           INT8_C( 106), INT8_C(  72), INT8_C(  62), INT8_C( -24),
                           INT8_C( -65), INT8_C( 102), INT8_C(-122), INT8_C(  19)),
      simde_mm512_set_epi8(INT8_C( -43), INT8_C( 127), INT8_C(  82), INT8_C(-110),
                           INT8_C( 127), INT8_C(  89), INT8_C(   0), INT8_C( 127),
                           INT8_C( -87), INT8_C( 127), INT8_C(  -7), INT8_C( -45),
                           INT8_C(  12), INT8_C(  85), INT8_C(  90), INT8_C(  35),
                           INT8_C(  87), INT8_C( 127), INT8_C(  20), INT8_C( -90),
                           INT8_C(-128), INT8_C( -25), INT8_C(  37), INT8_C( -94),
                           INT8_C( -60), INT8_C( -26), INT8_C(-128), INT8_C( 127),
                           INT8_C(  73), INT8_C( 109), INT8_C(  34), INT8_C(  88),
                           INT8_C(-128), INT8_C( -74), INT8_C(  64), INT8_C(-128),
                           INT8_C(  89), INT8_C( 115), INT8_C(-105), INT8_C( -52),
                           INT8_C( 127), INT8_C( 102), INT8_C(  37), INT8_C(  -1),
                           INT8_C(  17), INT8_C(-128), INT8_C(-119), INT8_C(-128),
                           INT8_C(  69), INT8_C( -42), INT8_C(  36), INT8_C(  24),
                           INT8_C(  27), INT8_C( -37), INT8_C( -84), INT8_C(  28),
                           INT8_C( 116), INT8_C( 122), INT8_C( 100), INT8_C(  84),
                           INT8_C( -23), INT8_C(  62), INT8_C(-128), INT8_C(  50)) },
    { simde_mm512_set_epi8(INT8_C(  90), INT8_C(-125), INT8_C(  -5), INT8_C( -69),
                           INT8_C( 103), INT8_C( -40), INT8_C(  35), INT8_C( -38),
                           INT8_C( 107), INT8_C(-117), INT8_C( -80), INT8_C( 123),
                           INT8_C(  57), INT8_C( -70), INT8_C( -34), INT8_C(  38),
                           INT8_C( 114), INT8_C(-126), INT8_C(  20), INT8_C( -93),
                           INT8_C(  17), INT8_C(-128), INT8_C(   2), INT8_C(  15),
                           INT8_C(-122), INT8_C( -10), INT8_C(  -2), INT8_C(  84),
                           INT8_C(  93), INT8_C(  89), INT8_C(  57), INT8_C( -50),
                           INT8_C(   4), INT8_C( -63), INT8_C( 118), INT8_C(  19),
                           INT8_C( -68), INT8_C( -29), INT8_C( -16), INT8_C( -30),
                           INT8_C( -76), INT8_C(-110), INT8_C( 121), INT8_C(  87),
                           INT8_C(-117), INT8_C(-113), INT8_C( -94), INT8_C(  61),
                           INT8_C( -29), INT8_C(  43), INT8_C( -69), INT8_C( 123),
                           INT8_C(  79), INT8_C(-101), INT8_C(  40), INT8_C(  64),
                           INT8_C(  34), INT8_C(-102), INT8_C(  77), INT8_C( 114),
                           INT8_C( -49), INT8_C( -31), INT8_C( 103), INT8_C(  81)),
      simde_mm512_set_epi8(INT8_C(  34), INT8_C(-125), INT8_C( -96), INT8_C(-111),
                           INT8_C(  23), INT8_C(  58), INT8_C(  -5), INT8_C( -22),
                           INT8_C( -80), INT8_C( -90), INT8_C( -33), INT8_C( -65),
                           INT8_C( -34), INT8_C( 100), INT8_C( -10), INT8_C( -57),
                           INT8_C(  37), INT8_C(  -9), INT8_C( -29), INT8_C(-114),
                           INT8_C(-102), INT8_C(  53), INT8_C( 107), INT8_C( 124),
                           INT8_C( -12), INT8_C( -57), INT8_C( -57), INT8_C( -37),
                           INT8_C(  50), INT8_C(  22), INT8_C( -71), INT8_C(  -2),
                           INT8_C( -31), INT8_C(  60), INT8_C(  62), INT8_C(  19),
                           INT8_C( 117), INT8_C(   1), INT8_C( -26), INT8_C(-100),
                           INT8_C(  29), INT8_C(  -6), INT8_C(   7), INT8_C(-100),
                           INT8_C(-120), INT8_C( -33), INT8_C(  17), INT8_C(-103),
                           INT8_C(  10), INT8_C( -45), INT8_C( -76), INT8_C(  10),
                           INT8_C( -10), INT8_C(  15), INT8_C(  36), INT8_C(   2),
                           INT8_C(  74), INT8_C(  44), INT8_C( -16), INT8_C( 122),
                           INT8_C(  -4), INT8_C(  15), INT8_C( -27), INT8_C( -15)),
      simde_mm512_set_epi8(INT8_C( 124), INT8_C(-128), INT8_C(-101), INT8_C(-128),
                           INT8_C( 126), INT8_C(  18), INT8_C(  30), INT8_C( -60),
                           INT8_C(  27), INT8_C(-128), INT8_C(-113), INT8_C(  58),
                           INT8_C(  23), INT8_C(  30), INT8_C( -44), INT8_C( -19),
                           INT8_C( 127), INT8_C(-128), INT8_C(  -9), INT8_C(-128),
                           INT8_C( -85), INT8_C( -75), INT8_C( 109), INT8_C( 127),
                           INT8_C(-128), INT8_C( -67), INT8_C( -59), INT8_C(  47),
                           INT8_C( 127), INT8_C( 111), INT8_C( -14), INT8_C( -52),
                           INT8_C( -27), INT8_C(  -3), INT8_C( 127), INT8_C(  38),
                           INT8_C(  49), INT8_C( -28), INT8_C( -42), INT8_C(-128),
                           INT8_C( -47), INT8_C(-116), INT8_C( 127), INT8_C( -13),
                           INT8_C(-128), INT8_C(-128), INT8_C( -77), INT8_C( -42),
                           INT8_C( -19), INT8_C(  -2), INT8_C(-128), INT8_C( 127),
                           INT8_C(  69), INT8_C( -86), INT8_C(  76), INT8_C(  66),
                           INT8_C( 108), INT8_C( -58), INT8_C(  61), INT8_C( 127),
                           INT8_C( -53), INT8_C( -16), INT8_C(  76), INT8_C(  66)) },
    { simde_mm512_set_epi8(INT8_C( -52), INT8_C(-111), INT8_C(  67), INT8_C( -14),
                           INT8_C(  11), INT8_C( -63), INT8_C( -35), INT8_C( -86),
                           INT8_C(-114), INT8_C( -97), INT8_C( 124), INT8_C( -30),
                           INT8_C(  -1), INT8_C(  55), INT8_C(  84), INT8_C(  12),
                           INT8_C(  86), INT8_C( -43), INT8_C(  81), INT8_C( -30),
                           INT8_C( -25), INT8_C(  74), INT8_C(-105), INT8_C(  11),
                           INT8_C( -97), INT8_C(   0), INT8_C(  98), INT8_C( 106),
                           INT8_C( -83), INT8_C( -89), INT8_C(  16), INT8_C( -42),
                           INT8_C(  81), INT8_C(  35), INT8_C(-127), INT8_C(-127),
                           INT8_C( -38), INT8_C(  51), INT8_C( -75), INT8_C(  24),
                           INT8_C(  86), INT8_C( -37), INT8_C(  97), INT8_C( -82),
                           INT8_C( 109), INT8_C(  21), INT8_C( 127), INT8_C(  16),
                           INT8_C( 101), INT8_C( -69), INT8_C(  95), INT8_C(-121),
                           INT8_C( -66), INT8_C(  39), INT8_C( 104), INT8_C(-109),
                           INT8_C(  -1), INT8_C(  35), INT8_C(  68), INT8_C(  93),
                           INT8_C( -25), INT8_C( 120), INT8_C( -19), INT8_C(  84)),
      simde_mm512_set_epi8(INT8_C(-111), INT8_C(-108), INT8_C( 102), INT8_C( -40),
                           INT8_C(-124), INT8_C( -61), INT8_C(  80), INT8_C( 102),
                           INT8_C( -35), INT8_C(   3), INT8_C( -76), INT8_C(  98),
                           INT8_C(   9), INT8_C( -39), INT8_C( -24), INT8_C( -92),
                           INT8_C( -73), INT8_C( -19), INT8_C(-103), INT8_C( -41),
                           INT8_C( -32), INT8_C(  -8), INT8_C( 126), INT8_C(  75),
                           INT8_C( -64), INT8_C( -26), INT8_C( -15), INT8_C( -35),
                           INT8_C( -20), INT8_C(  -6), INT8_C(  86), INT8_C( -56),
                           INT8_C( -56), INT8_C(  67), INT8_C(  59), INT8_C( -73),
                           INT8_C(  35), INT8_C( -67), INT8_C(  92), INT8_C(  34),
                           INT8_C(  16), INT8_C( -12), INT8_C(  44), INT8_C( -59),
                           INT8_C( -82), INT8_C(-102), INT8_C(  93), INT8_C( -43),
                           INT8_C(  79), INT8_C( -19), INT8_C( -45), INT8_C( -87),
                           INT8_C( -50), INT8_C( -23), INT8_C( -17), INT8_C( 110),
                           INT8_C( 102), INT8_C( -59), INT8_C(-117), INT8_C(  84),
                           INT8_C( -75), INT8_C(  87), INT8_C(  69), INT8_C(  -6)),
      simde_mm512_set_epi8(INT8_C(-128), INT8_C(-128), INT8_C( 127), INT8_C( -54),
                           INT8_C(-113), INT8_C(-124), INT8_C(  45), INT8_C(  16),
                           INT8_C(-128), INT8_C( -94), INT8_C(  48), INT8_C(  68),
                           INT8_C(   8), INT8_C(  16), INT8_C(  60), INT8_C( -80),
                           INT8_C(  13), INT8_C( -62), INT8_C( -22), INT8_C( -71),
                           INT8_C( -57), INT8_C(  66), INT8_C(  21), INT8_C(  86),
                           INT8_C(-128), INT8_C( -26), INT8_C(  83), INT8_C(  71),
                           INT8_C(-103), INT8_C( -95), INT8_C( 102), INT8_C( -98),
                           INT8_C(  25), INT8_C( 102), INT8_C( -68), INT8_C(-128),
                           INT8_C(  -3), INT8_C( -16), INT8_C(  17), INT8_C(  58),
                           INT8_C( 102), INT8_C( -49), INT8_C( 127), INT8_C(-128),
                           INT8_C(  27), INT8_C( -81), INT8_C( 127), INT8_C( -27),
                           INT8_C( 127), INT8_C( -88), INT8_C(  50), INT8_C(-128),
                           INT8_C(-116), INT8_C(  16), INT8_C(  87), INT8_C(   1),
                           INT8_C( 101), INT8_C( -24), INT8_C( -49), INT8_C( 127),
                           INT8_C(-100), INT8_C( 127), INT8_C(  50), INT8_C(  78)) }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde__m512i r = simde_mm512_adds_epi8(test_vec[i].a, test_vec[i].b);
    simde_assert_m512i_i8(r, ==, test_vec[i].r);
  }

  return 0;
}

static int
test_simde_mm512_mask_adds_epi8(SIMDE_MUNIT_TEST_ARGS) {
  const struct {
    simde__m512i src;
    simde__mmask64 k;
    simde__m512i a;
    simde__m512i b;
    simde__m512i r;
  } test_vec[8] = {
    { simde_mm512_set_epi8(INT8_C(  92), INT8_C( 116), INT8_C( -78), INT8_C( -19),
                           INT8_C( -73), INT8_C(  22), INT8_C( -66), INT8_C( -29),
                           INT8_C(  55), INT8_C(  78), INT8_C( -45), INT8_C(-119),
                           INT8_C(  30), INT8_C( -29), INT8_C( -23), INT8_C(  89),
                           INT8_C(  15), INT8_C( 119), INT8_C( -88), INT8_C( 109),
                           INT8_C( -16), INT8_C( -10), INT8_C(   0), INT8_C( -18),
                           INT8_C(   1), INT8_C( 116), INT8_C(  62), INT8_C( -73),
                           INT8_C(-122), INT8_C(   0), INT8_C( 111), INT8_C(  95),
                           INT8_C( -20), INT8_C(   3), INT8_C( 122), INT8_C(-121),
                           INT8_C(  13), INT8_C(  25), INT8_C( -35), INT8_C(-127),
                           INT8_C(  82), INT8_C(  90), INT8_C(  53), INT8_C( 123),
                           INT8_C(  73), INT8_C( 108), INT8_C( -18), INT8_C(  15),
                           INT8_C(  81), INT8_C( -27), INT8_C( 102), INT8_C( 118),
                           INT8_C(  39), INT8_C( -77), INT8_C(  45), INT8_C(  81),
                           INT8_C( -17), INT8_C( -28), INT8_C(  67), INT8_C(-118),
                           INT8_C(  79), INT8_C(-113), INT8_C(-122), INT8_C( 124)),
      UINT64_C(10224647434006242820),
      simde_mm512_set_epi8(INT8_C(  68), INT8_C(-108), INT8_C(-121), INT8_C(-115),
                           INT8_C( -59), INT8_C( -78), INT8_C(-111), INT8_C(  56),
                           INT8_C(   9), INT8_C(-121), INT8_C( 120), INT8_C( -36),
                           INT8_C(  36), INT8_C(-103), INT8_C(-104), INT8_C(  25),
                           INT8_C(-111), INT8_C( -63), INT8_C( -35), INT8_C(-120),
                           INT8_C(  28), INT8_C( -44), INT8_C( -26), INT8_C( -86),
                           INT8_C( -13), INT8_C(  53), INT8_C( -88), INT8_C(-107),
                           INT8_C(  68), INT8_C(  42), INT8_C(-118), INT8_C( 111),
                           INT8_C(  54), INT8_C( -58), INT8_C( -13), INT8_C(  27),
                           INT8_C(  23), INT8_C(  41), INT8_C(-119), INT8_C(  44),
                           INT8_C(   7), INT8_C(-120), INT8_C(  32), INT8_C( -43),
                           INT8_C( 114), INT8_C( -72), INT8_C(  73), INT8_C( -96),
                           INT8_C(  96), INT8_C( 110), INT8_C( -81), INT8_C( -76),
                           INT8_C( 103), INT8_C(-100), INT8_C( -22), INT8_C(  18),
                           INT8_C( 115), INT8_C(  54), INT8_C( -40), INT8_C( 125),
                           INT8_C( 110), INT8_C(  31), INT8_C(  51), INT8_C(-104)),
      simde_mm512_set_epi8(INT8_C( -14), INT8_C(  85), INT8_C( -80), INT8_C(  80),
                           INT8_C(  48), INT8_C(  93), INT8_C(  79), INT8_C( 127),
                           INT8_C(  16), INT8_C(  41), INT8_C(  54), INT8_C(-116),
                           INT8_C(  17), INT8_C(  42), INT8_C( -86), INT8_C(  38),
                           INT8_C(-118), INT8_C( -56), INT8_C(  60), INT8_C(  19),
                           INT8_C(-100), INT8_C(-107), INT8_C( 105), INT8_C( -76),
                           INT8_C(  10), INT8_C(  -9), INT8_C( -12), INT8_C( -56),
                           INT8_C( -71), INT8_C(  96), INT8_C(   6), INT8_C(  24),
                           INT8_C(  69), INT8_C(  73), INT8_C( -27), INT8_C(   3),
                           INT8_C( -95), INT8_C(  50), INT8_C( -67), INT8_C( -39),
                           INT8_C(  97), INT8_C(  62), INT8_C( 101), INT8_C(  56),
                           INT8_C( -79), INT8_C(  83), INT8_C( -99), INT8_C( -56),
                           INT8_C( -17), INT8_C( -56), INT8_C(  -8), INT8_C( -16),
                           INT8_C(  84), INT8_C( -95), INT8_C( -73), INT8_C(  54),
                           INT8_C( 125), INT8_C(  85), INT8_C(  78), INT8_C( -65),
                           INT8_C(   4), INT8_C( 113), INT8_C( -16), INT8_C( -53)),
      simde_mm512_set_epi8(INT8_C(  54), INT8_C( 116), INT8_C( -78), INT8_C( -19),
                           INT8_C( -11), INT8_C(  15), INT8_C( -66), INT8_C( 127),
                           INT8_C(  25), INT8_C( -80), INT8_C( 127), INT8_C(-119),
                           INT8_C(  30), INT8_C( -61), INT8_C( -23), INT8_C(  63),
                           INT8_C(  15), INT8_C( 119), INT8_C(  25), INT8_C(-101),
                           INT8_C( -72), INT8_C(-128), INT8_C(  79), INT8_C( -18),
                           INT8_C(  -3), INT8_C( 116), INT8_C(-100), INT8_C( -73),
                           INT8_C(  -3), INT8_C(   0), INT8_C(-112), INT8_C( 127),
                           INT8_C( -20), INT8_C(   3), INT8_C( -40), INT8_C(  30),
                           INT8_C(  13), INT8_C(  25), INT8_C( -35), INT8_C(   5),
                           INT8_C( 104), INT8_C(  90), INT8_C(  53), INT8_C( 123),
                           INT8_C(  35), INT8_C(  11), INT8_C( -18), INT8_C(-128),
                           INT8_C(  81), INT8_C( -27), INT8_C( -89), INT8_C( 118),
                           INT8_C(  39), INT8_C(-128), INT8_C( -95), INT8_C(  81),
                           INT8_C( -17), INT8_C( -28), INT8_C(  67), INT8_C(-118),
                           INT8_C(  79), INT8_C( 127), INT8_C(-122), INT8_C( 124)) },
    { simde_mm512_set_epi8(INT8_C(-123), INT8_C(-100), INT8_C( -39), INT8_C( -44),
                           INT8_C(  22), INT8_C( 112), INT8_C(  16), INT8_C(  15),
                           INT8_C(-104), INT8_C(-102), INT8_C( 102), INT8_C( -95),
                           INT8_C(  69), INT8_C(  13), INT8_C( -21), INT8_C(  45),
                           INT8_C(  62), INT8_C(-120), INT8_C(-111), INT8_C(  32),
                           INT8_C(-107), INT8_C( -30), INT8_C(  99), INT8_C( -64),
                           INT8_C(   8), INT8_C( -42), INT8_C(  81), INT8_C( -34),
                           INT8_C( -46), INT8_C(  26), INT8_C(  31), INT8_C(  -2),
                           INT8_C(  68), INT8_C(  -7), INT8_C( -71), INT8_C(  46),
                           INT8_C( -21), INT8_C( -73), INT8_C(  21), INT8_C(  83),
                           INT8_C(-108), INT8_C( -97), INT8_C( -69), INT8_C(  73),
                           INT8_C(  57), INT8_C( -37), INT8_C(  21), INT8_C(  82),
                           INT8_C(-119), INT8_C(-126), INT8_C( 126), INT8_C(  91),
                           INT8_C( 115), INT8_C(  31), INT8_C( -79), INT8_C(  28),
                           INT8_C(-106), INT8_C( -18), INT8_C(  65), INT8_C(-104),
                           INT8_C(  81), INT8_C(  38), INT8_C( -84), INT8_C(  -2)),
      UINT64_C( 4597426592773770833),
      simde_mm512_set_epi8(INT8_C(  74), INT8_C(  72), INT8_C(  -4), INT8_C(  28),
                           INT8_C(-115), INT8_C(  93), INT8_C( 102), INT8_C(  44),
                           INT8_C(-103), INT8_C( -29), INT8_C( -50), INT8_C(  48),
                           INT8_C( -96), INT8_C( -50), INT8_C(  46), INT8_C( -65),
                           INT8_C(   4), INT8_C(  43), INT8_C( -75), INT8_C(  97),
                           INT8_C( -26), INT8_C(-103), INT8_C(  71), INT8_C(-107),
                           INT8_C(  91), INT8_C(  45), INT8_C( -11), INT8_C(  47),
                           INT8_C(  29), INT8_C(  25), INT8_C(  26), INT8_C(  -9),
                           INT8_C(  10), INT8_C(  36), INT8_C( -79), INT8_C( -53),
                           INT8_C(  41), INT8_C(   1), INT8_C( -23), INT8_C( -63),
                           INT8_C(-127), INT8_C(  68), INT8_C(  48), INT8_C(  36),
                           INT8_C(  89), INT8_C(-112), INT8_C( -31), INT8_C( 120),
                           INT8_C(  35), INT8_C(  62), INT8_C( -21), INT8_C(-114),
                           INT8_C(-104), INT8_C(  57), INT8_C(  42), INT8_C(-111),
                           INT8_C(  94), INT8_C( -63), INT8_C(  -9), INT8_C(  64),
                           INT8_C( -65), INT8_C(  -2), INT8_C( 110), INT8_C(  -8)),
      simde_mm512_set_epi8(INT8_C(  44), INT8_C( -92), INT8_C( -31), INT8_C(  26),
                           INT8_C( -99), INT8_C( -53), INT8_C( 117), INT8_C(  18),
                           INT8_C( -63), INT8_C(  45), INT8_C(  12), INT8_C(  24),
                           INT8_C(-108), INT8_C(  18), INT8_C( -60), INT8_C(  28),
                           INT8_C(  50), INT8_C( -11), INT8_C( -68), INT8_C( -31),
                           INT8_C( 105), INT8_C(-106), INT8_C(  98), INT8_C(  51),
                           INT8_C(  58), INT8_C( 103), INT8_C( 111), INT8_C(-127),
                           INT8_C(  68), INT8_C( -56), INT8_C( 124), INT8_C(-119),
                           INT8_C(  74), INT8_C( -62), INT8_C(-116), INT8_C(  37),
                           INT8_C( -12), INT8_C( 114), INT8_C(   0), INT8_C(  61),
                           INT8_C( 103), INT8_C(  -4), INT8_C(-105), INT8_C( -68),
                           INT8_C(  39), INT8_C(-100), INT8_C( -93), INT8_C(  11),
                           INT8_C( -80), INT8_C( -19), INT8_C( -22), INT8_C( -39),
                           INT8_C( 127), INT8_C( -38), INT8_C(-125), INT8_C(-111),
                           INT8_C(  84), INT8_C( -96), INT8_C(  87), INT8_C( -22),
                           INT8_C(  -5), INT8_C(  -3), INT8_C(-127), INT8_C(  41)),
      simde_mm512_set_epi8(INT8_C(-123), INT8_C(-100), INT8_C( -35), INT8_C(  54),
                           INT8_C(-128), INT8_C(  40), INT8_C( 127), INT8_C(  62),
                           INT8_C(-128), INT8_C(  16), INT8_C( 102), INT8_C( -95),
                           INT8_C(-128), INT8_C( -32), INT8_C( -21), INT8_C( -37),
                           INT8_C(  62), INT8_C(  32), INT8_C(-111), INT8_C(  66),
                           INT8_C(-107), INT8_C(-128), INT8_C( 127), INT8_C( -56),
                           INT8_C(   8), INT8_C( -42), INT8_C( 100), INT8_C( -34),
                           INT8_C( -46), INT8_C(  26), INT8_C(  31), INT8_C(  -2),
                           INT8_C(  84), INT8_C(  -7), INT8_C(-128), INT8_C( -16),
                           INT8_C(  29), INT8_C( 115), INT8_C( -23), INT8_C(  -2),
                           INT8_C(-108), INT8_C( -97), INT8_C( -57), INT8_C( -32),
                           INT8_C(  57), INT8_C(-128), INT8_C(-124), INT8_C( 127),
                           INT8_C(-119), INT8_C(-126), INT8_C( 126), INT8_C(  91),
                           INT8_C(  23), INT8_C(  19), INT8_C( -83), INT8_C(  28),
                           INT8_C(-106), INT8_C(-128), INT8_C(  65), INT8_C(  42),
                           INT8_C(  81), INT8_C(  38), INT8_C( -84), INT8_C(  33)) },
    { simde_mm512_set_epi8(INT8_C( -30), INT8_C( -37), INT8_C(  51), INT8_C( -36),
                           INT8_C(   8), INT8_C(  52), INT8_C(  97), INT8_C( 123),
                           INT8_C( -49), INT8_C(-124), INT8_C(  95), INT8_C( -83),
                           INT8_C(  70), INT8_C( -50), INT8_C( -61), INT8_C(  25),
                           INT8_C( -97), INT8_C(  28), INT8_C( -58), INT8_C(  11),
                           INT8_C( -14), INT8_C( 126), INT8_C(  81), INT8_C(  45),
                           INT8_C( -23), INT8_C( 120), INT8_C( -83), INT8_C( -16),
                           INT8_C(   7), INT8_C(  51), INT8_C( -57), INT8_C( -50),
                           INT8_C( -21), INT8_C(  98), INT8_C(  88), INT8_C(   0),
                           INT8_C( -66), INT8_C(   3), INT8_C( 124), INT8_C(-113),
                           INT8_C(  50), INT8_C(  88), INT8_C( -85), INT8_C( -93),
                           INT8_C( -44), INT8_C( -13), INT8_C( -94), INT8_C(  17),
                           INT8_C(  -2), INT8_C(  79), INT8_C(-116), INT8_C(  43),
                           INT8_C( -77), INT8_C(-125), INT8_C( -23), INT8_C(-120),
                           INT8_C(  96), INT8_C( -64), INT8_C( -23), INT8_C( -46),
                           INT8_C( -29), INT8_C( -71), INT8_C(  71), INT8_C(  90)),
      UINT64_C(12627002542648829104),
      simde_mm512_set_epi8(INT8_C(  56), INT8_C( -45), INT8_C(-108), INT8_C( -19),
                           INT8_C(-124), INT8_C( -27), INT8_C(  22), INT8_C( 126),
                           INT8_C(-106), INT8_C( -68), INT8_C( -60), INT8_C(   8),
                           INT8_C(  60), INT8_C(  93), INT8_C( -33), INT8_C( -27),
                           INT8_C(  -7), INT8_C(  27), INT8_C(-122), INT8_C( -38),
                           INT8_C(  23), INT8_C(   6), INT8_C(  45), INT8_C( -21),
                           INT8_C( -23), INT8_C(-101), INT8_C( 116), INT8_C( 127),
                           INT8_C(  96), INT8_C(  40), INT8_C( -97), INT8_C(  40),
                           INT8_C(  86), INT8_C( -44), INT8_C(  70), INT8_C( -71),
                           INT8_C(  62), INT8_C( -21), INT8_C(  66), INT8_C(  68),
                           INT8_C( -87), INT8_C( -61), INT8_C(  48), INT8_C( -70),
                           INT8_C(  18), INT8_C( -78), INT8_C( -98), INT8_C( 117),
                           INT8_C(  74), INT8_C(  32), INT8_C(  93), INT8_C( 125),
                           INT8_C( -47), INT8_C( -60), INT8_C( -86), INT8_C( 117),
                           INT8_C( 122), INT8_C( -54), INT8_C(  50), INT8_C( 123),
                           INT8_C( -31), INT8_C( -74), INT8_C( -64), INT8_C(  54)),
      simde_mm512_set_epi8(INT8_C( 115), INT8_C(  51), INT8_C( -91), INT8_C(  56),
                           INT8_C(  64), INT8_C( -39), INT8_C(-119), INT8_C( -28),
                           INT8_C( -54), INT8_C(  28), INT8_C(  54), INT8_C(  -8),
                           INT8_C( -54), INT8_C(-128), INT8_C( -28), INT8_C( -71),
                           INT8_C( 107), INT8_C( -66), INT8_C(-114), INT8_C( -88),
                           INT8_C(  34), INT8_C( -83), INT8_C( -21), INT8_C( -64),
                           INT8_C( 121), INT8_C( -20), INT8_C( -89), INT8_C( -94),
                           INT8_C( 112), INT8_C( -27), INT8_C(  81), INT8_C( -54),
                           INT8_C( -64), INT8_C(-114), INT8_C(  48), INT8_C( -89),
                           INT8_C( -61), INT8_C(  26), INT8_C(  43), INT8_C(  29),
                           INT8_C(   0), INT8_C(  64), INT8_C( 123), INT8_C( -67),
                           INT8_C(  15), INT8_C( 120), INT8_C(  36), INT8_C(  40),
                           INT8_C( 106), INT8_C(-118), INT8_C(-108), INT8_C( -58),
                           INT8_C(  26), INT8_C(-111), INT8_C(  63), INT8_C( -98),
                           INT8_C( -13), INT8_C( -12), INT8_C(-124), INT8_C(  96),
                           INT8_C( -13), INT8_C( -98), INT8_C(  99), INT8_C( -13)),
      simde_mm512_set_epi8(INT8_C( 127), INT8_C( -37), INT8_C(-128), INT8_C( -36),
                           INT8_C( -60), INT8_C( -66), INT8_C( -97), INT8_C(  98),
                           INT8_C( -49), INT8_C(-124), INT8_C(  -6), INT8_C(   0),
                           INT8_C(   6), INT8_C( -35), INT8_C( -61), INT8_C(  25),
                           INT8_C( -97), INT8_C(  28), INT8_C( -58), INT8_C(-126),
                           INT8_C(  57), INT8_C( -77), INT8_C(  24), INT8_C( -85),
                           INT8_C(  98), INT8_C(-121), INT8_C(  27), INT8_C( -16),
                           INT8_C( 127), INT8_C(  51), INT8_C( -57), INT8_C( -14),
                           INT8_C( -21), INT8_C(-128), INT8_C( 118), INT8_C(   0),
                           INT8_C(   1), INT8_C(   5), INT8_C( 124), INT8_C(-113),
                           INT8_C( -87), INT8_C(  88), INT8_C( -85), INT8_C( -93),
                           INT8_C(  33), INT8_C( -13), INT8_C( -94), INT8_C( 127),
                           INT8_C( 127), INT8_C(  79), INT8_C( -15), INT8_C(  43),
                           INT8_C( -77), INT8_C(-128), INT8_C( -23), INT8_C(-120),
                           INT8_C( 109), INT8_C( -64), INT8_C( -74), INT8_C( 127),
                           INT8_C( -29), INT8_C( -71), INT8_C(  71), INT8_C(  90)) },
    { simde_mm512_set_epi8(INT8_C(  72), INT8_C(  45), INT8_C( 120), INT8_C(  -5),
                           INT8_C(-109), INT8_C(  62), INT8_C(  17), INT8_C(  31),
                           INT8_C( -30), INT8_C( -58), INT8_C(  56), INT8_C(  21),
                           INT8_C(  72), INT8_C( -74), INT8_C( -40), INT8_C( 120),
                           INT8_C(  95), INT8_C( 108), INT8_C(  32), INT8_C(  64),
                           INT8_C(-128), INT8_C( 102), INT8_C( -21), INT8_C(  28),
                           INT8_C( 105), INT8_C(  52), INT8_C(  85), INT8_C(-104),
                           INT8_C(  57), INT8_C( -31), INT8_C( -38), INT8_C(-124),
                           INT8_C(-107), INT8_C(  -2), INT8_C(  55), INT8_C(  46),
                           INT8_C( -71), INT8_C(  77), INT8_C(  18), INT8_C(  70),
                           INT8_C(  89), INT8_C( 125), INT8_C( -42), INT8_C(-125),
                           INT8_C( 121), INT8_C( -11), INT8_C( -69), INT8_C( -59),
                           INT8_C( -53), INT8_C(  34), INT8_C(   9), INT8_C(  64),
                           INT8_C( -61), INT8_C( -25), INT8_C(-115), INT8_C( 100),
                           INT8_C(  65), INT8_C(   8), INT8_C(  69), INT8_C(  -8),
                           INT8_C( -15), INT8_C( -51), INT8_C(   1), INT8_C(  90)),
      UINT64_C(14515151237088493607),
      simde_mm512_set_epi8(INT8_C( -26), INT8_C(  -9), INT8_C(  66), INT8_C(   1),
                           INT8_C( -13), INT8_C(  60), INT8_C(-119), INT8_C( -83),
                           INT8_C(-122), INT8_C( -64), INT8_C( -83), INT8_C( -74),
                           INT8_C( 119), INT8_C(  -8), INT8_C(  12), INT8_C( 113),
                           INT8_C( -12), INT8_C( -84), INT8_C(   6), INT8_C(  69),
                           INT8_C(   2), INT8_C( -75), INT8_C( -34), INT8_C(-126),
                           INT8_C(   3), INT8_C(-128), INT8_C(  -9), INT8_C(  24),
                           INT8_C(  11), INT8_C( -94), INT8_C( -32), INT8_C( 110),
                           INT8_C(  33), INT8_C( -24), INT8_C( 125), INT8_C(  35),
                           INT8_C(-103), INT8_C( -48), INT8_C( -22), INT8_C(  38),
                           INT8_C( -81), INT8_C(   9), INT8_C( -11), INT8_C(-124),
                           INT8_C(  71), INT8_C(  31), INT8_C( -42), INT8_C(  93),
                           INT8_C(  67), INT8_C(  45), INT8_C(  51), INT8_C( -92),
                           INT8_C( 126), INT8_C( 108), INT8_C(-123), INT8_C( -71),
                           INT8_C( 113), INT8_C(  32), INT8_C(  71), INT8_C(  55),
                           INT8_C( -26), INT8_C(  82), INT8_C( -81), INT8_C( -20)),
      simde_mm512_set_epi8(INT8_C(-125), INT8_C( 121), INT8_C(-128), INT8_C( 103),
                           INT8_C(   0), INT8_C( 101), INT8_C( -41), INT8_C(  89),
                           INT8_C( -83), INT8_C( -65), INT8_C(   9), INT8_C(  -7),
                           INT8_C( -63), INT8_C(  13), INT8_C( 105), INT8_C(  92),
                           INT8_C( -18), INT8_C( -21), INT8_C(-102), INT8_C(-114),
                           INT8_C(  74), INT8_C( 121), INT8_C( -45), INT8_C(  52),
                           INT8_C( -63), INT8_C( -93), INT8_C(  98), INT8_C( 106),
                           INT8_C(-109), INT8_C( -47), INT8_C(  37), INT8_C(  70),
                           INT8_C( 100), INT8_C( 121), INT8_C(  18), INT8_C(  28),
                           INT8_C(-117), INT8_C( 107), INT8_C(   3), INT8_C( -62),
                           INT8_C(  42), INT8_C(  72), INT8_C(  91), INT8_C(  86),
                           INT8_C( -72), INT8_C(   9), INT8_C( -80), INT8_C( 118),
                           INT8_C( 122), INT8_C(-108), INT8_C( -70), INT8_C( -63),
                           INT8_C(  56), INT8_C(  71), INT8_C( -14), INT8_C(  49),
                           INT8_C( -73), INT8_C(  53), INT8_C( -29), INT8_C(   3),
                           INT8_C( -73), INT8_C(  43), INT8_C( -22), INT8_C(  85)),
      simde_mm512_set_epi8(INT8_C(-128), INT8_C( 112), INT8_C( 120), INT8_C(  -5),
                           INT8_C( -13), INT8_C(  62), INT8_C(  17), INT8_C(   6),
                           INT8_C( -30), INT8_C(-128), INT8_C( -74), INT8_C( -81),
                           INT8_C(  72), INT8_C( -74), INT8_C( -40), INT8_C( 120),
                           INT8_C(  95), INT8_C( 108), INT8_C( -96), INT8_C(  64),
                           INT8_C(  76), INT8_C(  46), INT8_C( -21), INT8_C( -74),
                           INT8_C( 105), INT8_C(  52), INT8_C(  89), INT8_C(-104),
                           INT8_C(  57), INT8_C(-128), INT8_C( -38), INT8_C( 127),
                           INT8_C(-107), INT8_C(  97), INT8_C(  55), INT8_C(  46),
                           INT8_C( -71), INT8_C(  77), INT8_C( -19), INT8_C( -24),
                           INT8_C( -39), INT8_C( 125), INT8_C(  80), INT8_C( -38),
                           INT8_C(  -1), INT8_C( -11), INT8_C(-122), INT8_C( 127),
                           INT8_C( -53), INT8_C( -63), INT8_C(   9), INT8_C(  64),
                           INT8_C( -61), INT8_C( -25), INT8_C(-115), INT8_C( 100),
                           INT8_C(  65), INT8_C(   8), INT8_C(  42), INT8_C(  -8),
                           INT8_C( -15), INT8_C( 125), INT8_C(-103), INT8_C(  65)) },
    { simde_mm512_set_epi8(INT8_C( -47), INT8_C(  84), INT8_C(-126), INT8_C( -64),
                           INT8_C(  14), INT8_C(  11), INT8_C(  37), INT8_C( -23),
                           INT8_C(  67), INT8_C( 124), INT8_C(  58), INT8_C( -94),
                           INT8_C(  30), INT8_C( -33), INT8_C(  70), INT8_C( -24),
                           INT8_C(  38), INT8_C( -97), INT8_C( -56), INT8_C( -60),
                           INT8_C( -59), INT8_C(  65), INT8_C( -74), INT8_C(  45),
                           INT8_C( -11), INT8_C(  55), INT8_C( -82), INT8_C(  12),
                           INT8_C( 106), INT8_C(  22), INT8_C(-124), INT8_C(  -4),
                           INT8_C(   2), INT8_C( -81), INT8_C(  14), INT8_C(  90),
                           INT8_C(-100), INT8_C(-122), INT8_C( -35), INT8_C(  81),
                           INT8_C( -14), INT8_C( -42), INT8_C( 125), INT8_C(-125),
                           INT8_C( -57), INT8_C(  90), INT8_C(  -9), INT8_C(  63),
                           INT8_C(  53), INT8_C(  77), INT8_C(  63), INT8_C( -84),
                           INT8_C(  27), INT8_C(  22), INT8_C(   3), INT8_C( -37),
                           INT8_C(  65), INT8_C( 118), INT8_C(-126), INT8_C(  97),
                           INT8_C( 109), INT8_C(   7), INT8_C(-114), INT8_C( -75)),
      UINT64_C( 8707623543556880126),
      simde_mm512_set_epi8(INT8_C(  84), INT8_C( -71), INT8_C(   8), INT8_C(  12),
                           INT8_C( -11), INT8_C( -76), INT8_C(  62), INT8_C(  93),
                           INT8_C( -75), INT8_C( -77), INT8_C( -84), INT8_C(-108),
                           INT8_C( -35), INT8_C(  14), INT8_C( -60), INT8_C(  18),
                           INT8_C(  23), INT8_C( -60), INT8_C( -63), INT8_C(-114),
                           INT8_C( -55), INT8_C(  75), INT8_C( -99), INT8_C( -55),
                           INT8_C(  58), INT8_C(  76), INT8_C(-102), INT8_C(-118),
                           INT8_C( -30), INT8_C(  39), INT8_C( 119), INT8_C(  85),
                           INT8_C(  -8), INT8_C( -72), INT8_C( -60), INT8_C( -94),
                           INT8_C(-112), INT8_C( 119), INT8_C( 124), INT8_C(  76),
                           INT8_C( -42), INT8_C(-124), INT8_C(  54), INT8_C(  74),
                           INT8_C( -92), INT8_C(  99), INT8_C(  79), INT8_C(  -3),
                           INT8_C(  61), INT8_C( -89), INT8_C(  84), INT8_C( -94),
                           INT8_C(  31), INT8_C(-116), INT8_C( -67), INT8_C(-102),
                           INT8_C( -72), INT8_C( -91), INT8_C(-105), INT8_C(-108),
                           INT8_C( -44), INT8_C(  74), INT8_C( -28), INT8_C( 124)),
      simde_mm512_set_epi8(INT8_C(   1), INT8_C(  75), INT8_C(  21), INT8_C( -36),
                           INT8_C(-126), INT8_C( 122), INT8_C(  71), INT8_C(  76),
                           INT8_C(  28), INT8_C( -56), INT8_C(  32), INT8_C( 101),
                           INT8_C(-107), INT8_C(-111), INT8_C( -88), INT8_C( -19),
                           INT8_C( -77), INT8_C(  19), INT8_C( -21), INT8_C(-111),
                           INT8_C( -68), INT8_C(  82), INT8_C(-118), INT8_C( -76),
                           INT8_C(  47), INT8_C( 127), INT8_C(  62), INT8_C( -16),
                           INT8_C(  10), INT8_C( -14), INT8_C(-100), INT8_C(  86),
                           INT8_C(  29), INT8_C( 107), INT8_C(  56), INT8_C(  21),
                           INT8_C(  24), INT8_C(  68), INT8_C( -96), INT8_C(  64),
                           INT8_C(  48), INT8_C(  13), INT8_C( -83), INT8_C(   4),
                           INT8_C(  -3), INT8_C( -64), INT8_C(  17), INT8_C(-115),
                           INT8_C(  21), INT8_C( 108), INT8_C( 125), INT8_C( -60),
                           INT8_C( -72), INT8_C(  74), INT8_C(  -5), INT8_C( -58),
                           INT8_C( -41), INT8_C(  22), INT8_C(-115), INT8_C( 102),
                           INT8_C(  59), INT8_C( -80), INT8_C( -15), INT8_C( -63)),
      simde_mm512_set_epi8(INT8_C( -47), INT8_C(   4), INT8_C(  29), INT8_C( -24),
                           INT8_C(-128), INT8_C(  11), INT8_C(  37), INT8_C( -23),
                           INT8_C( -47), INT8_C(-128), INT8_C(  58), INT8_C(  -7),
                           INT8_C(  30), INT8_C( -97), INT8_C(-128), INT8_C(  -1),
                           INT8_C( -54), INT8_C( -97), INT8_C( -84), INT8_C(-128),
                           INT8_C( -59), INT8_C(  65), INT8_C( -74), INT8_C(-128),
                           INT8_C( -11), INT8_C( 127), INT8_C( -40), INT8_C(-128),
                           INT8_C( -20), INT8_C(  22), INT8_C(  19), INT8_C(  -4),
                           INT8_C(   2), INT8_C(  35), INT8_C(  14), INT8_C( -73),
                           INT8_C(-100), INT8_C( 127), INT8_C(  28), INT8_C( 127),
                           INT8_C(   6), INT8_C( -42), INT8_C( 125), INT8_C(-125),
                           INT8_C( -95), INT8_C(  90), INT8_C(  -9), INT8_C(-118),
                           INT8_C(  53), INT8_C(  77), INT8_C( 127), INT8_C(-128),
                           INT8_C(  27), INT8_C( -42), INT8_C( -72), INT8_C( -37),
                           INT8_C(-113), INT8_C( -69), INT8_C(-128), INT8_C(  -6),
                           INT8_C(  15), INT8_C(  -6), INT8_C( -43), INT8_C( -75)) },
    { simde_mm512_set_epi8(INT8_C( -64), INT8_C( -53), INT8_C( -42), INT8_C( 126),
                           INT8_C(  67), INT8_C(  50), INT8_C( -18), INT8_C(  76),
                           INT8_C( -19), INT8_C( 123), INT8_C( -87), INT8_C( 106),
                           INT8_C( -74), INT8_C(  44), INT8_C( 117), INT8_C( 103),
                           INT8_C(  81), INT8_C( 122), INT8_C(  56), INT8_C( -10),
                           INT8_C(  67), INT8_C(  79), INT8_C(  83), INT8_C( -38),
                           INT8_C( -13), INT8_C(  43), INT8_C(  27), INT8_C( -97),
                           INT8_C( 102), INT8_C( 126), INT8_C(  38), INT8_C( -62),
                           INT8_C( -24), INT8_C( 117), INT8_C( -38), INT8_C( -93),
                           INT8_C( -58), INT8_C(-124), INT8_C( -75), INT8_C(  10),
                           INT8_C(  18), INT8_C( -74), INT8_C(  14), INT8_C(  36),
                           INT8_C(  -7), INT8_C( 113), INT8_C(  40), INT8_C(  48),
                           INT8_C(-107), INT8_C( -34), INT8_C( -75), INT8_C(  85),
                           INT8_C( -35), INT8_C(-116), INT8_C(  65), INT8_C( -21),
                           INT8_C(  15), INT8_C(   3), INT8_C(  45), INT8_C(  21),
                           INT8_C(  72), INT8_C(  93), INT8_C( 108), INT8_C( 125)),
      UINT64_C(12576710173448868104),
      simde_mm512_set_epi8(INT8_C(  90), INT8_C( -38), INT8_C( -98), INT8_C( -70),
                           INT8_C(-108), INT8_C(  20), INT8_C(  43), INT8_C(-128),
                           INT8_C(  77), INT8_C( 108), INT8_C(  53), INT8_C(  82),
                           INT8_C( -50), INT8_C(  52), INT8_C(  56), INT8_C(  58),
                           INT8_C(-120), INT8_C( -43), INT8_C( 114), INT8_C(  93),
                           INT8_C( -44), INT8_C( -15), INT8_C(  38), INT8_C( -17),
                           INT8_C(-110), INT8_C(-123), INT8_C( -39), INT8_C( 114),
                           INT8_C(  51), INT8_C(-115), INT8_C( -74), INT8_C(  43),
                           INT8_C(  41), INT8_C( -36), INT8_C(  19), INT8_C(  69),
                           INT8_C(  60), INT8_C( -53), INT8_C( 112), INT8_C( 108),
                           INT8_C(   8), INT8_C(  46), INT8_C( -35), INT8_C(  26),
                           INT8_C(  11), INT8_C(  42), INT8_C(  47), INT8_C(  59),
                           INT8_C( -57), INT8_C(  94), INT8_C(-125), INT8_C(-124),
                           INT8_C(  36), INT8_C(  57), INT8_C(  68), INT8_C( -52),
                           INT8_C(  39), INT8_C(  50), INT8_C( -48), INT8_C(  94),
                           INT8_C(  53), INT8_C(  11), INT8_C(  29), INT8_C(  65)),
      simde_mm512_set_epi8(INT8_C(-107), INT8_C( 120), INT8_C( -58), INT8_C( 107),
                           INT8_C( -32), INT8_C( -32), INT8_C(  88), INT8_C( -43),
                           INT8_C(  31), INT8_C( -32), INT8_C( -64), INT8_C(  27),
                           INT8_C(  82), INT8_C( -90), INT8_C( -54), INT8_C( -84),
                           INT8_C( -30), INT8_C(  63), INT8_C(  24), INT8_C(  81),
                           INT8_C(  -8), INT8_C(   9), INT8_C( -35), INT8_C(-101),
                           INT8_C(  83), INT8_C( 107), INT8_C( -47), INT8_C( -56),
                           INT8_C(  57), INT8_C( -88), INT8_C(-115), INT8_C( -20),
                           INT8_C(  58), INT8_C(  75), INT8_C(  56), INT8_C(  93),
                           INT8_C(  49), INT8_C(  43), INT8_C( 108), INT8_C( 118),
                           INT8_C( -79), INT8_C( 112), INT8_C(  44), INT8_C(-112),
                           INT8_C( -52), INT8_C(  10), INT8_C(  28), INT8_C( -86),
                           INT8_C(  65), INT8_C(  62), INT8_C(  86), INT8_C(-107),
                           INT8_C(  24), INT8_C( -55), INT8_C(  54), INT8_C(-110),
                           INT8_C( -33), INT8_C( 110), INT8_C(-116), INT8_C( -39),
                           INT8_C(  39), INT8_C(-112), INT8_C(  64), INT8_C(  43)),
      simde_mm512_set_epi8(INT8_C( -17), INT8_C( -53), INT8_C(-128), INT8_C( 126),
                           INT8_C(-128), INT8_C( -12), INT8_C( 127), INT8_C(  76),
                           INT8_C( 108), INT8_C( 123), INT8_C( -87), INT8_C( 106),
                           INT8_C(  32), INT8_C(  44), INT8_C( 117), INT8_C( -26),
                           INT8_C(  81), INT8_C(  20), INT8_C( 127), INT8_C( 127),
                           INT8_C(  67), INT8_C(  79), INT8_C(   3), INT8_C(-118),
                           INT8_C( -13), INT8_C( -16), INT8_C(  27), INT8_C( -97),
                           INT8_C( 102), INT8_C(-128), INT8_C(  38), INT8_C( -62),
                           INT8_C(  99), INT8_C( 117), INT8_C(  75), INT8_C( 127),
                           INT8_C( 109), INT8_C(-124), INT8_C( 127), INT8_C( 127),
                           INT8_C(  18), INT8_C( 127), INT8_C(   9), INT8_C( -86),
                           INT8_C(  -7), INT8_C(  52), INT8_C(  75), INT8_C(  48),
                           INT8_C(-107), INT8_C( -34), INT8_C( -75), INT8_C(-128),
                           INT8_C( -35), INT8_C(-116), INT8_C(  65), INT8_C(-128),
                           INT8_C(  15), INT8_C(   3), INT8_C(  45), INT8_C(  21),
                           INT8_C(  92), INT8_C(  93), INT8_C( 108), INT8_C( 125)) },
    { simde_mm512_set_epi8(INT8_C(-103), INT8_C(-124), INT8_C(  13), INT8_C( -80),
                           INT8_C( -32), INT8_C( 123), INT8_C( 115), INT8_C( -49),
                           INT8_C( 113), INT8_C( -51), INT8_C( 119), INT8_C( -67),
                           INT8_C( -21), INT8_C(  19), INT8_C( -12), INT8_C(  29),
                           INT8_C(  91), INT8_C( -64), INT8_C(  88), INT8_C(-105),
                           INT8_C(  24), INT8_C(  31), INT8_C(  77), INT8_C(  92),
                           INT8_C( -85), INT8_C(  48), INT8_C(-113), INT8_C(-114),
                           INT8_C(  16), INT8_C(  18), INT8_C( -44), INT8_C( -66),
                           INT8_C(  25), INT8_C(-105), INT8_C(-100), INT8_C( -91),
                           INT8_C(  26), INT8_C(-123), INT8_C( -33), INT8_C( -37),
                           INT8_C(  63), INT8_C(  13), INT8_C(-124), INT8_C(  41),
                           INT8_C(-104), INT8_C( -59), INT8_C(  -2), INT8_C( -54),
                           INT8_C(  73), INT8_C(   3), INT8_C( -18), INT8_C(  10),
                           INT8_C(  19), INT8_C(  58), INT8_C( -12), INT8_C( -75),
                           INT8_C( -88), INT8_C(  59), INT8_C( 104), INT8_C( -40),
                           INT8_C( -82), INT8_C(  42), INT8_C( -73), INT8_C( -94)),
      UINT64_C( 2633789449456316803),
      simde_mm512_set_epi8(INT8_C( 118), INT8_C(  44), INT8_C( -14), INT8_C(  84),
                           INT8_C( -69), INT8_C( -48), INT8_C(  40), INT8_C(  86),
                           INT8_C(  -1), INT8_C( 121), INT8_C( -40), INT8_C(  44),
                           INT8_C(  -1), INT8_C(  38), INT8_C( -44), INT8_C(  38),
                           INT8_C(  93), INT8_C(-107), INT8_C(  -4), INT8_C( -61),
                           INT8_C( -52), INT8_C(  22), INT8_C( -54), INT8_C(-125),
                           INT8_C( -29), INT8_C(  25), INT8_C( -77), INT8_C( -68),
                           INT8_C(   9), INT8_C( -35), INT8_C( -11), INT8_C(  53),
                           INT8_C(  28), INT8_C(  61), INT8_C( -35), INT8_C(-106),
                           INT8_C( -46), INT8_C( 121), INT8_C(-102), INT8_C( 121),
                           INT8_C( -54), INT8_C( -60), INT8_C(   7), INT8_C(   2),
                           INT8_C(-119), INT8_C( 111), INT8_C( -20), INT8_C( -58),
                           INT8_C( -98), INT8_C(  83), INT8_C(  32), INT8_C( -49),
                           INT8_C( -11), INT8_C(  48), INT8_C(  92), INT8_C(  47),
                           INT8_C( -38), INT8_C(  11), INT8_C(  26), INT8_C(  90),
                           INT8_C(  -5), INT8_C(  73), INT8_C(  45), INT8_C(  -2)),
      simde_mm512_set_epi8(INT8_C( -31), INT8_C( 126), INT8_C(-118), INT8_C( -57),
                           INT8_C(-126), INT8_C(  29), INT8_C( 101), INT8_C( -15),
                           INT8_C( -61), INT8_C( 118), INT8_C( 102), INT8_C(  12),
                           INT8_C( -59), INT8_C( -41), INT8_C( -60), INT8_C(  46),
                           INT8_C(  63), INT8_C(  78), INT8_C(  87), INT8_C(  18),
                           INT8_C(  18), INT8_C(  32), INT8_C( -26), INT8_C(  -6),
                           INT8_C( -20), INT8_C(-123), INT8_C(  99), INT8_C(  65),
                           INT8_C(  13), INT8_C(  25), INT8_C( 108), INT8_C(-121),
                           INT8_C(  42), INT8_C(   0), INT8_C( 104), INT8_C( -17),
                           INT8_C( 111), INT8_C(-110), INT8_C( -39), INT8_C( 125),
                           INT8_C( -50), INT8_C( -47), INT8_C(  30), INT8_C(  92),
                           INT8_C(  19), INT8_C(  -8), INT8_C(-120), INT8_C( 127),
                           INT8_C( -49), INT8_C(  23), INT8_C(  16), INT8_C( -64),
                           INT8_C( -79), INT8_C( 116), INT8_C(  -5), INT8_C( -50),
                           INT8_C(  32), INT8_C(  22), INT8_C( -42), INT8_C(  -3),
                           INT8_C(  30), INT8_C(  64), INT8_C(  96), INT8_C( -66)),
      simde_mm512_set_epi8(INT8_C(-103), INT8_C(-124), INT8_C(-128), INT8_C( -80),
                           INT8_C( -32), INT8_C( -19), INT8_C( 115), INT8_C( -49),
                           INT8_C( -62), INT8_C( -51), INT8_C( 119), INT8_C( -67),
                           INT8_C( -60), INT8_C(  -3), INT8_C( -12), INT8_C(  84),
                           INT8_C(  91), INT8_C( -64), INT8_C(  88), INT8_C( -43),
                           INT8_C( -34), INT8_C(  31), INT8_C(  77), INT8_C(-128),
                           INT8_C( -49), INT8_C(  48), INT8_C(-113), INT8_C(-114),
                           INT8_C(  22), INT8_C( -10), INT8_C( -44), INT8_C( -66),
                           INT8_C(  70), INT8_C(  61), INT8_C(-100), INT8_C( -91),
                           INT8_C(  26), INT8_C(  11), INT8_C( -33), INT8_C( -37),
                           INT8_C(  63), INT8_C(  13), INT8_C(-124), INT8_C(  41),
                           INT8_C(-104), INT8_C( -59), INT8_C(-128), INT8_C(  69),
                           INT8_C(-128), INT8_C( 106), INT8_C(  48), INT8_C(-113),
                           INT8_C(  19), INT8_C(  58), INT8_C( -12), INT8_C(  -3),
                           INT8_C(  -6), INT8_C(  59), INT8_C( 104), INT8_C( -40),
                           INT8_C( -82), INT8_C(  42), INT8_C( 127), INT8_C( -68)) },
    { simde_mm512_set_epi8(INT8_C( 117), INT8_C(  69), INT8_C( 121), INT8_C( -45),
                           INT8_C(  30), INT8_C( -73), INT8_C(   2), INT8_C( -40),
                           INT8_C(  95), INT8_C(  -3), INT8_C(  16), INT8_C( -78),
                           INT8_C(-128), INT8_C( -41), INT8_C( -66), INT8_C(  66),
                           INT8_C(  93), INT8_C( -32), INT8_C( -50), INT8_C(  -2),
                           INT8_C( -61), INT8_C(  29), INT8_C( -88), INT8_C(-118),
                           INT8_C( -27), INT8_C(  42), INT8_C(  78), INT8_C( -46),
                           INT8_C( -79), INT8_C(  38), INT8_C( -75), INT8_C(  14),
                           INT8_C(-118), INT8_C(-114), INT8_C(-120), INT8_C(  42),
                           INT8_C(   4), INT8_C(  79), INT8_C( -84), INT8_C(-110),
                           INT8_C(   0), INT8_C(  85), INT8_C( -20), INT8_C(  61),
                           INT8_C(  40), INT8_C( -75), INT8_C(  69), INT8_C( -99),
                           INT8_C(  73), INT8_C( -34), INT8_C( -14), INT8_C(  72),
                           INT8_C( 101), INT8_C(  96), INT8_C(-114), INT8_C(-124),
                           INT8_C( -87), INT8_C(  43), INT8_C(-118), INT8_C( 114),
                           INT8_C( -88), INT8_C(   8), INT8_C( -52), INT8_C(  75)),
      UINT64_C(14890918166471265655),
      simde_mm512_set_epi8(INT8_C( -56), INT8_C( -70), INT8_C(  66), INT8_C(-111),
                           INT8_C( -69), INT8_C(  15), INT8_C( -82), INT8_C( -12),
                           INT8_C( -89), INT8_C(  37), INT8_C(  80), INT8_C( 120),
                           INT8_C( -83), INT8_C(-120), INT8_C(  95), INT8_C(  21),
                           INT8_C(  91), INT8_C( -97), INT8_C( -72), INT8_C(  42),
                           INT8_C(  22), INT8_C( -70), INT8_C(  71), INT8_C( -78),
                           INT8_C(  -5), INT8_C(  52), INT8_C( -22), INT8_C( -34),
                           INT8_C(  16), INT8_C(  92), INT8_C(  91), INT8_C( -72),
                           INT8_C(   3), INT8_C( -31), INT8_C( -95), INT8_C( -56),
                           INT8_C( -50), INT8_C(  68), INT8_C( -24), INT8_C( -50),
                           INT8_C(  94), INT8_C(  67), INT8_C( 108), INT8_C(-118),
                           INT8_C( -65), INT8_C(  31), INT8_C(  70), INT8_C( 108),
                           INT8_C( -66), INT8_C( 107), INT8_C( -85), INT8_C(  38),
                           INT8_C(   2), INT8_C(  32), INT8_C(  56), INT8_C(  66),
                           INT8_C(  -2), INT8_C( -74), INT8_C( 112), INT8_C(  10),
                           INT8_C(  64), INT8_C( 100), INT8_C( -55), INT8_C(  83)),
      simde_mm512_set_epi8(INT8_C( -69), INT8_C( -45), INT8_C(  23), INT8_C(  70),
                           INT8_C(  22), INT8_C( 113), INT8_C(  75), INT8_C(-117),
                           INT8_C(  69), INT8_C( -74), INT8_C(  40), INT8_C( -39),
                           INT8_C( -51), INT8_C( -91), INT8_C(  25), INT8_C(  -4),
                           INT8_C( -12), INT8_C( -13), INT8_C( -77), INT8_C(  75),
                           INT8_C(-116), INT8_C( -36), INT8_C(  38), INT8_C( -52),
                           INT8_C(  13), INT8_C( -52), INT8_C(-100), INT8_C( -46),
                           INT8_C(  13), INT8_C(  83), INT8_C( -94), INT8_C( 102),
                           INT8_C( 116), INT8_C( -60), INT8_C(  44), INT8_C(  -7),
                           INT8_C( 104), INT8_C( -50), INT8_C( -30), INT8_C(  17),
                           INT8_C(  13), INT8_C(-107), INT8_C( 111), INT8_C( -13),
                           INT8_C(  17), INT8_C( -45), INT8_C( -31), INT8_C(  76),
                           INT8_C(-102), INT8_C( -71), INT8_C( 116), INT8_C(  72),
                           INT8_C( -11), INT8_C( -97), INT8_C(  93), INT8_C(  48),
                           INT8_C( -75), INT8_C( -90), INT8_C( -10), INT8_C( -78),
                           INT8_C(  -8), INT8_C( -10), INT8_C(  48), INT8_C( -11)),
      simde_mm512_set_epi8(INT8_C(-125), INT8_C(-115), INT8_C( 121), INT8_C( -45),
                           INT8_C( -47), INT8_C( 127), INT8_C(  -7), INT8_C( -40),
                           INT8_C( -20), INT8_C(  -3), INT8_C( 120), INT8_C( -78),
                           INT8_C(-128), INT8_C(-128), INT8_C( 120), INT8_C(  17),
                           INT8_C(  93), INT8_C( -32), INT8_C(-128), INT8_C(  -2),
                           INT8_C( -94), INT8_C(  29), INT8_C( 109), INT8_C(-128),
                           INT8_C( -27), INT8_C(  42), INT8_C(-122), INT8_C( -46),
                           INT8_C(  29), INT8_C( 127), INT8_C( -75), INT8_C(  30),
                           INT8_C(-118), INT8_C( -91), INT8_C(-120), INT8_C(  42),
                           INT8_C(  54), INT8_C(  79), INT8_C( -54), INT8_C( -33),
                           INT8_C( 107), INT8_C( -40), INT8_C( 127), INT8_C(  61),
                           INT8_C( -48), INT8_C( -14), INT8_C(  39), INT8_C( -99),
                           INT8_C(  73), INT8_C(  36), INT8_C( -14), INT8_C(  72),
                           INT8_C(  -9), INT8_C( -65), INT8_C(-114), INT8_C( 114),
                           INT8_C( -87), INT8_C(-128), INT8_C( 102), INT8_C( -68),
                           INT8_C( -88), INT8_C(  90), INT8_C(  -7), INT8_C(  72)) },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde__m512i r = simde_mm512_mask_adds_epi8(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b);
    simde_assert_m512i_i8(r, ==, test_vec[i].r);
  }

  return 0;
}

static int
test_simde_mm512_maskz_adds_epi8(SIMDE_MUNIT_TEST_ARGS) {
  const struct {
    simde__mmask64 k;
    simde__m512i a;
    simde__m512i b;
    simde__m512i r;
  } test_vec[8] = {
    { UINT64_C(17286015531074160252),
      simde_mm512_set_epi8(INT8_C(-115), INT8_C( -27), INT8_C(  62), INT8_C( -85),
                           INT8_C(  49), INT8_C(-115), INT8_C(  38), INT8_C(   4),
                           INT8_C(  92), INT8_C( 116), INT8_C( -78), INT8_C( -19),
                           INT8_C( -73), INT8_C(  22), INT8_C( -66), INT8_C( -29),
                           INT8_C(  55), INT8_C(  78), INT8_C( -45), INT8_C(-119),
                           INT8_C(  30), INT8_C( -29), INT8_C( -23), INT8_C(  89),
                           INT8_C(  15), INT8_C( 119), INT8_C( -88), INT8_C( 109),
                           INT8_C( -16), INT8_C( -10), INT8_C(   0), INT8_C( -18),
                           INT8_C(   1), INT8_C( 116), INT8_C(  62), INT8_C( -73),
                           INT8_C(-122), INT8_C(   0), INT8_C( 111), INT8_C(  95),
                           INT8_C( -20), INT8_C(   3), INT8_C( 122), INT8_C(-121),
                           INT8_C(  13), INT8_C(  25), INT8_C( -35), INT8_C(-127),
                           INT8_C(  82), INT8_C(  90), INT8_C(  53), INT8_C( 123),
                           INT8_C(  73), INT8_C( 108), INT8_C( -18), INT8_C(  15),
                           INT8_C(  81), INT8_C( -27), INT8_C( 102), INT8_C( 118),
                           INT8_C(  39), INT8_C( -77), INT8_C(  45), INT8_C(  81)),
      simde_mm512_set_epi8(INT8_C(  68), INT8_C(-108), INT8_C(-121), INT8_C(-115),
                           INT8_C( -59), INT8_C( -78), INT8_C(-111), INT8_C(  56),
                           INT8_C(   9), INT8_C(-121), INT8_C( 120), INT8_C( -36),
                           INT8_C(  36), INT8_C(-103), INT8_C(-104), INT8_C(  25),
                           INT8_C(-111), INT8_C( -63), INT8_C( -35), INT8_C(-120),
                           INT8_C(  28), INT8_C( -44), INT8_C( -26), INT8_C( -86),
                           INT8_C( -13), INT8_C(  53), INT8_C( -88), INT8_C(-107),
                           INT8_C(  68), INT8_C(  42), INT8_C(-118), INT8_C( 111),
                           INT8_C(  54), INT8_C( -58), INT8_C( -13), INT8_C(  27),
                           INT8_C(  23), INT8_C(  41), INT8_C(-119), INT8_C(  44),
                           INT8_C(   7), INT8_C(-120), INT8_C(  32), INT8_C( -43),
                           INT8_C( 114), INT8_C( -72), INT8_C(  73), INT8_C( -96),
                           INT8_C(  96), INT8_C( 110), INT8_C( -81), INT8_C( -76),
                           INT8_C( 103), INT8_C(-100), INT8_C( -22), INT8_C(  18),
                           INT8_C( 115), INT8_C(  54), INT8_C( -40), INT8_C( 125),
                           INT8_C( 110), INT8_C(  31), INT8_C(  51), INT8_C(-104)),
      simde_mm512_set_epi8(INT8_C( -47), INT8_C(-128), INT8_C( -59), INT8_C(   0),
                           INT8_C( -10), INT8_C(-128), INT8_C( -73), INT8_C(  60),
                           INT8_C( 101), INT8_C(  -5), INT8_C(  42), INT8_C(   0),
                           INT8_C(   0), INT8_C( -81), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(  15), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(   0), INT8_C( -49), INT8_C(   3),
                           INT8_C(   2), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(  52), INT8_C(   0), INT8_C(-118), INT8_C(   0),
                           INT8_C(   0), INT8_C(  58), INT8_C(   0), INT8_C(   0),
                           INT8_C( -99), INT8_C(  41), INT8_C(  -8), INT8_C( 127),
                           INT8_C( -13), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C( 127), INT8_C( -47), INT8_C(  38), INT8_C(-128),
                           INT8_C( 127), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(   8), INT8_C( -40), INT8_C(   0),
                           INT8_C(   0), INT8_C(  27), INT8_C(  62), INT8_C( 127),
                           INT8_C( 127), INT8_C( -46), INT8_C(   0), INT8_C(   0)) },
    { UINT64_C( 9031211210081693899),
      simde_mm512_set_epi8(INT8_C(-106), INT8_C( -18), INT8_C(  65), INT8_C(-104),
                           INT8_C(  81), INT8_C(  38), INT8_C( -84), INT8_C(  -2),
                           INT8_C( -14), INT8_C(  85), INT8_C( -80), INT8_C(  80),
                           INT8_C(  48), INT8_C(  93), INT8_C(  79), INT8_C( 127),
                           INT8_C(  16), INT8_C(  41), INT8_C(  54), INT8_C(-116),
                           INT8_C(  17), INT8_C(  42), INT8_C( -86), INT8_C(  38),
                           INT8_C(-118), INT8_C( -56), INT8_C(  60), INT8_C(  19),
                           INT8_C(-100), INT8_C(-107), INT8_C( 105), INT8_C( -76),
                           INT8_C(  10), INT8_C(  -9), INT8_C( -12), INT8_C( -56),
                           INT8_C( -71), INT8_C(  96), INT8_C(   6), INT8_C(  24),
                           INT8_C(  69), INT8_C(  73), INT8_C( -27), INT8_C(   3),
                           INT8_C( -95), INT8_C(  50), INT8_C( -67), INT8_C( -39),
                           INT8_C(  97), INT8_C(  62), INT8_C( 101), INT8_C(  56),
                           INT8_C( -79), INT8_C(  83), INT8_C( -99), INT8_C( -56),
                           INT8_C( -17), INT8_C( -56), INT8_C(  -8), INT8_C( -16),
                           INT8_C(  84), INT8_C( -95), INT8_C( -73), INT8_C(  54)),
      simde_mm512_set_epi8(INT8_C(  63), INT8_C( -51), INT8_C(  87), INT8_C(  32),
                           INT8_C( -65), INT8_C(  55), INT8_C(  14), INT8_C(  81),
                           INT8_C(-123), INT8_C(-100), INT8_C( -39), INT8_C( -44),
                           INT8_C(  22), INT8_C( 112), INT8_C(  16), INT8_C(  15),
                           INT8_C(-104), INT8_C(-102), INT8_C( 102), INT8_C( -95),
                           INT8_C(  69), INT8_C(  13), INT8_C( -21), INT8_C(  45),
                           INT8_C(  62), INT8_C(-120), INT8_C(-111), INT8_C(  32),
                           INT8_C(-107), INT8_C( -30), INT8_C(  99), INT8_C( -64),
                           INT8_C(   8), INT8_C( -42), INT8_C(  81), INT8_C( -34),
                           INT8_C( -46), INT8_C(  26), INT8_C(  31), INT8_C(  -2),
                           INT8_C(  68), INT8_C(  -7), INT8_C( -71), INT8_C(  46),
                           INT8_C( -21), INT8_C( -73), INT8_C(  21), INT8_C(  83),
                           INT8_C(-108), INT8_C( -97), INT8_C( -69), INT8_C(  73),
                           INT8_C(  57), INT8_C( -37), INT8_C(  21), INT8_C(  82),
                           INT8_C(-119), INT8_C(-126), INT8_C( 126), INT8_C(  91),
                           INT8_C( 115), INT8_C(  31), INT8_C( -79), INT8_C(  28)),
      simde_mm512_set_epi8(INT8_C(   0), INT8_C( -69), INT8_C( 127), INT8_C( -72),
                           INT8_C(  16), INT8_C(  93), INT8_C(   0), INT8_C(  79),
                           INT8_C(   0), INT8_C( -15), INT8_C(   0), INT8_C(  36),
                           INT8_C(   0), INT8_C( 127), INT8_C(   0), INT8_C( 127),
                           INT8_C(   0), INT8_C( -61), INT8_C(   0), INT8_C(   0),
                           INT8_C(  86), INT8_C(  55), INT8_C(-107), INT8_C(   0),
                           INT8_C( -56), INT8_C(   0), INT8_C( -51), INT8_C(  51),
                           INT8_C(-128), INT8_C(-128), INT8_C( 127), INT8_C(-128),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C( 122), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(  66), INT8_C( -98), INT8_C(  49),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(  44),
                           INT8_C( -11), INT8_C( -35), INT8_C(  32), INT8_C( 127),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(-128), INT8_C(-128), INT8_C(   0), INT8_C(   0),
                           INT8_C( 127), INT8_C(   0), INT8_C(-128), INT8_C(  82)) },
    { UINT64_C( 6828010367541473016),
      simde_mm512_set_epi8(INT8_C(  84), INT8_C( -96), INT8_C(  87), INT8_C( -22),
                           INT8_C(  -5), INT8_C(  -3), INT8_C(-127), INT8_C(  41),
                           INT8_C(  74), INT8_C(  72), INT8_C(  -4), INT8_C(  28),
                           INT8_C(-115), INT8_C(  93), INT8_C( 102), INT8_C(  44),
                           INT8_C(-103), INT8_C( -29), INT8_C( -50), INT8_C(  48),
                           INT8_C( -96), INT8_C( -50), INT8_C(  46), INT8_C( -65),
                           INT8_C(   4), INT8_C(  43), INT8_C( -75), INT8_C(  97),
                           INT8_C( -26), INT8_C(-103), INT8_C(  71), INT8_C(-107),
                           INT8_C(  91), INT8_C(  45), INT8_C( -11), INT8_C(  47),
                           INT8_C(  29), INT8_C(  25), INT8_C(  26), INT8_C(  -9),
                           INT8_C(  10), INT8_C(  36), INT8_C( -79), INT8_C( -53),
                           INT8_C(  41), INT8_C(   1), INT8_C( -23), INT8_C( -63),
                           INT8_C(-127), INT8_C(  68), INT8_C(  48), INT8_C(  36),
                           INT8_C(  89), INT8_C(-112), INT8_C( -31), INT8_C( 120),
                           INT8_C(  35), INT8_C(  62), INT8_C( -21), INT8_C(-114),
                           INT8_C(-104), INT8_C(  57), INT8_C(  42), INT8_C(-111)),
      simde_mm512_set_epi8(INT8_C(  96), INT8_C( -64), INT8_C( -23), INT8_C( -46),
                           INT8_C( -29), INT8_C( -71), INT8_C(  71), INT8_C(  90),
                           INT8_C(  44), INT8_C( -92), INT8_C( -31), INT8_C(  26),
                           INT8_C( -99), INT8_C( -53), INT8_C( 117), INT8_C(  18),
                           INT8_C( -63), INT8_C(  45), INT8_C(  12), INT8_C(  24),
                           INT8_C(-108), INT8_C(  18), INT8_C( -60), INT8_C(  28),
                           INT8_C(  50), INT8_C( -11), INT8_C( -68), INT8_C( -31),
                           INT8_C( 105), INT8_C(-106), INT8_C(  98), INT8_C(  51),
                           INT8_C(  58), INT8_C( 103), INT8_C( 111), INT8_C(-127),
                           INT8_C(  68), INT8_C( -56), INT8_C( 124), INT8_C(-119),
                           INT8_C(  74), INT8_C( -62), INT8_C(-116), INT8_C(  37),
                           INT8_C( -12), INT8_C( 114), INT8_C(   0), INT8_C(  61),
                           INT8_C( 103), INT8_C(  -4), INT8_C(-105), INT8_C( -68),
                           INT8_C(  39), INT8_C(-100), INT8_C( -93), INT8_C(  11),
                           INT8_C( -80), INT8_C( -19), INT8_C( -22), INT8_C( -39),
                           INT8_C( 127), INT8_C( -38), INT8_C(-125), INT8_C(-111)),
      simde_mm512_set_epi8(INT8_C(   0), INT8_C(-128), INT8_C(   0), INT8_C( -68),
                           INT8_C( -34), INT8_C( -74), INT8_C( -56), INT8_C(   0),
                           INT8_C( 118), INT8_C( -20), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(  62),
                           INT8_C(-128), INT8_C(  16), INT8_C( -38), INT8_C(  72),
                           INT8_C(   0), INT8_C( -32), INT8_C( -14), INT8_C( -37),
                           INT8_C(   0), INT8_C(  32), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C( 127), INT8_C(   0), INT8_C( 100), INT8_C( -80),
                           INT8_C(  97), INT8_C( -31), INT8_C( 127), INT8_C(-128),
                           INT8_C(  84), INT8_C( -26), INT8_C(-128), INT8_C( -16),
                           INT8_C(  29), INT8_C( 115), INT8_C( -23), INT8_C(   0),
                           INT8_C(   0), INT8_C(  64), INT8_C( -57), INT8_C(   0),
                           INT8_C( 127), INT8_C(-128), INT8_C(-124), INT8_C(   0),
                           INT8_C( -45), INT8_C(  43), INT8_C( -43), INT8_C(-128),
                           INT8_C(  23), INT8_C(   0), INT8_C(   0), INT8_C(   0)) },
    { UINT64_C(18325019528117086600),
      simde_mm512_set_epi8(INT8_C( 122), INT8_C( -54), INT8_C(  50), INT8_C( 123),
                           INT8_C( -31), INT8_C( -74), INT8_C( -64), INT8_C(  54),
                           INT8_C( -81), INT8_C(  60), INT8_C(  31), INT8_C( -23),
                           INT8_C( 108), INT8_C(-119), INT8_C( -92), INT8_C( -80),
                           INT8_C( -30), INT8_C( -37), INT8_C(  51), INT8_C( -36),
                           INT8_C(   8), INT8_C(  52), INT8_C(  97), INT8_C( 123),
                           INT8_C( -49), INT8_C(-124), INT8_C(  95), INT8_C( -83),
                           INT8_C(  70), INT8_C( -50), INT8_C( -61), INT8_C(  25),
                           INT8_C( -97), INT8_C(  28), INT8_C( -58), INT8_C(  11),
                           INT8_C( -14), INT8_C( 126), INT8_C(  81), INT8_C(  45),
                           INT8_C( -23), INT8_C( 120), INT8_C( -83), INT8_C( -16),
                           INT8_C(   7), INT8_C(  51), INT8_C( -57), INT8_C( -50),
                           INT8_C( -21), INT8_C(  98), INT8_C(  88), INT8_C(   0),
                           INT8_C( -66), INT8_C(   3), INT8_C( 124), INT8_C(-113),
                           INT8_C(  50), INT8_C(  88), INT8_C( -85), INT8_C( -93),
                           INT8_C( -44), INT8_C( -13), INT8_C( -94), INT8_C(  17)),
      simde_mm512_set_epi8(INT8_C( -13), INT8_C( -12), INT8_C(-124), INT8_C(  96),
                           INT8_C( -13), INT8_C( -98), INT8_C(  99), INT8_C( -13),
                           INT8_C(  56), INT8_C( -45), INT8_C(-108), INT8_C( -19),
                           INT8_C(-124), INT8_C( -27), INT8_C(  22), INT8_C( 126),
                           INT8_C(-106), INT8_C( -68), INT8_C( -60), INT8_C(   8),
                           INT8_C(  60), INT8_C(  93), INT8_C( -33), INT8_C( -27),
                           INT8_C(  -7), INT8_C(  27), INT8_C(-122), INT8_C( -38),
                           INT8_C(  23), INT8_C(   6), INT8_C(  45), INT8_C( -21),
                           INT8_C( -23), INT8_C(-101), INT8_C( 116), INT8_C( 127),
                           INT8_C(  96), INT8_C(  40), INT8_C( -97), INT8_C(  40),
                           INT8_C(  86), INT8_C( -44), INT8_C(  70), INT8_C( -71),
                           INT8_C(  62), INT8_C( -21), INT8_C(  66), INT8_C(  68),
                           INT8_C( -87), INT8_C( -61), INT8_C(  48), INT8_C( -70),
                           INT8_C(  18), INT8_C( -78), INT8_C( -98), INT8_C( 117),
                           INT8_C(  74), INT8_C(  32), INT8_C(  93), INT8_C( 125),
                           INT8_C( -47), INT8_C( -60), INT8_C( -86), INT8_C( 117)),
      simde_mm512_set_epi8(INT8_C( 109), INT8_C( -66), INT8_C( -74), INT8_C( 127),
                           INT8_C( -44), INT8_C(-128), INT8_C(  35), INT8_C(   0),
                           INT8_C(   0), INT8_C(  15), INT8_C(   0), INT8_C(   0),
                           INT8_C( -16), INT8_C(-128), INT8_C( -70), INT8_C(  46),
                           INT8_C(-128), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(  68), INT8_C( 127), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(   0), INT8_C( -27), INT8_C(   0),
                           INT8_C(  93), INT8_C(   0), INT8_C( -16), INT8_C(   4),
                           INT8_C(-120), INT8_C(   0), INT8_C(  58), INT8_C( 127),
                           INT8_C(   0), INT8_C(   0), INT8_C( -16), INT8_C(  85),
                           INT8_C(  63), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(   0), INT8_C(   9), INT8_C(  18),
                           INT8_C(-108), INT8_C(  37), INT8_C( 127), INT8_C(   0),
                           INT8_C( -48), INT8_C(   0), INT8_C(   0), INT8_C(   4),
                           INT8_C( 124), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C( -91), INT8_C(   0), INT8_C(   0), INT8_C(   0)) },
    { UINT64_C( 7677112093376593822),
      simde_mm512_set_epi8(INT8_C( -53), INT8_C(  34), INT8_C(   9), INT8_C(  64),
                           INT8_C( -61), INT8_C( -25), INT8_C(-115), INT8_C( 100),
                           INT8_C(  65), INT8_C(   8), INT8_C(  69), INT8_C(  -8),
                           INT8_C( -15), INT8_C( -51), INT8_C(   1), INT8_C(  90),
                           INT8_C( 115), INT8_C(  51), INT8_C( -91), INT8_C(  56),
                           INT8_C(  64), INT8_C( -39), INT8_C(-119), INT8_C( -28),
                           INT8_C( -54), INT8_C(  28), INT8_C(  54), INT8_C(  -8),
                           INT8_C( -54), INT8_C(-128), INT8_C( -28), INT8_C( -71),
                           INT8_C( 107), INT8_C( -66), INT8_C(-114), INT8_C( -88),
                           INT8_C(  34), INT8_C( -83), INT8_C( -21), INT8_C( -64),
                           INT8_C( 121), INT8_C( -20), INT8_C( -89), INT8_C( -94),
                           INT8_C( 112), INT8_C( -27), INT8_C(  81), INT8_C( -54),
                           INT8_C( -64), INT8_C(-114), INT8_C(  48), INT8_C( -89),
                           INT8_C( -61), INT8_C(  26), INT8_C(  43), INT8_C(  29),
                           INT8_C(   0), INT8_C(  64), INT8_C( 123), INT8_C( -67),
                           INT8_C(  15), INT8_C( 120), INT8_C(  36), INT8_C(  40)),
      simde_mm512_set_epi8(INT8_C( 113), INT8_C(  32), INT8_C(  71), INT8_C(  55),
                           INT8_C( -26), INT8_C(  82), INT8_C( -81), INT8_C( -20),
                           INT8_C( -55), INT8_C( 112), INT8_C(  45), INT8_C(  37),
                           INT8_C(  67), INT8_C( -69), INT8_C(  64), INT8_C(  39),
                           INT8_C(  72), INT8_C(  45), INT8_C( 120), INT8_C(  -5),
                           INT8_C(-109), INT8_C(  62), INT8_C(  17), INT8_C(  31),
                           INT8_C( -30), INT8_C( -58), INT8_C(  56), INT8_C(  21),
                           INT8_C(  72), INT8_C( -74), INT8_C( -40), INT8_C( 120),
                           INT8_C(  95), INT8_C( 108), INT8_C(  32), INT8_C(  64),
                           INT8_C(-128), INT8_C( 102), INT8_C( -21), INT8_C(  28),
                           INT8_C( 105), INT8_C(  52), INT8_C(  85), INT8_C(-104),
                           INT8_C(  57), INT8_C( -31), INT8_C( -38), INT8_C(-124),
                           INT8_C(-107), INT8_C(  -2), INT8_C(  55), INT8_C(  46),
                           INT8_C( -71), INT8_C(  77), INT8_C(  18), INT8_C(  70),
                           INT8_C(  89), INT8_C( 125), INT8_C( -42), INT8_C(-125),
                           INT8_C( 121), INT8_C( -11), INT8_C( -69), INT8_C( -59)),
      simde_mm512_set_epi8(INT8_C(   0), INT8_C(  66), INT8_C(  80), INT8_C(   0),
                           INT8_C( -87), INT8_C(   0), INT8_C(-128), INT8_C(   0),
                           INT8_C(  10), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(  52), INT8_C(   0), INT8_C(  65), INT8_C(   0),
                           INT8_C( 127), INT8_C(   0), INT8_C(   0), INT8_C(  51),
                           INT8_C(   0), INT8_C(  23), INT8_C(   0), INT8_C(   0),
                           INT8_C( -84), INT8_C( -30), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(-128), INT8_C( -68), INT8_C(   0),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C( -24),
                           INT8_C( -94), INT8_C(   0), INT8_C( -42), INT8_C(   0),
                           INT8_C( 127), INT8_C(   0), INT8_C(   0), INT8_C(-128),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(-128),
                           INT8_C(   0), INT8_C(   0), INT8_C( 103), INT8_C( -43),
                           INT8_C(-128), INT8_C( 103), INT8_C(  61), INT8_C(  99),
                           INT8_C(  89), INT8_C(   0), INT8_C(   0), INT8_C(-128),
                           INT8_C( 127), INT8_C( 109), INT8_C( -33), INT8_C(   0)) },
    { UINT64_C( 4840581956081845689),
      simde_mm512_set_epi8(INT8_C( 122), INT8_C(-108), INT8_C( -70), INT8_C( -63),
                           INT8_C(  56), INT8_C(  71), INT8_C( -14), INT8_C(  49),
                           INT8_C( -73), INT8_C(  53), INT8_C( -29), INT8_C(   3),
                           INT8_C( -73), INT8_C(  43), INT8_C( -22), INT8_C(  85),
                           INT8_C( -26), INT8_C(  -9), INT8_C(  66), INT8_C(   1),
                           INT8_C( -13), INT8_C(  60), INT8_C(-119), INT8_C( -83),
                           INT8_C(-122), INT8_C( -64), INT8_C( -83), INT8_C( -74),
                           INT8_C( 119), INT8_C(  -8), INT8_C(  12), INT8_C( 113),
                           INT8_C( -12), INT8_C( -84), INT8_C(   6), INT8_C(  69),
                           INT8_C(   2), INT8_C( -75), INT8_C( -34), INT8_C(-126),
                           INT8_C(   3), INT8_C(-128), INT8_C(  -9), INT8_C(  24),
                           INT8_C(  11), INT8_C( -94), INT8_C( -32), INT8_C( 110),
                           INT8_C(  33), INT8_C( -24), INT8_C( 125), INT8_C(  35),
                           INT8_C(-103), INT8_C( -48), INT8_C( -22), INT8_C(  38),
                           INT8_C( -81), INT8_C(   9), INT8_C( -11), INT8_C(-124),
                           INT8_C(  71), INT8_C(  31), INT8_C( -42), INT8_C(  93)),
      simde_mm512_set_epi8(INT8_C(  53), INT8_C(  77), INT8_C(  63), INT8_C( -84),
                           INT8_C(  27), INT8_C(  22), INT8_C(   3), INT8_C( -37),
                           INT8_C(  65), INT8_C( 118), INT8_C(-126), INT8_C(  97),
                           INT8_C( 109), INT8_C(   7), INT8_C(-114), INT8_C( -75),
                           INT8_C(-125), INT8_C( 121), INT8_C(-128), INT8_C( 103),
                           INT8_C(   0), INT8_C( 101), INT8_C( -41), INT8_C(  89),
                           INT8_C( -83), INT8_C( -65), INT8_C(   9), INT8_C(  -7),
                           INT8_C( -63), INT8_C(  13), INT8_C( 105), INT8_C(  92),
                           INT8_C( -18), INT8_C( -21), INT8_C(-102), INT8_C(-114),
                           INT8_C(  74), INT8_C( 121), INT8_C( -45), INT8_C(  52),
                           INT8_C( -63), INT8_C( -93), INT8_C(  98), INT8_C( 106),
                           INT8_C(-109), INT8_C( -47), INT8_C(  37), INT8_C(  70),
                           INT8_C( 100), INT8_C( 121), INT8_C(  18), INT8_C(  28),
                           INT8_C(-117), INT8_C( 107), INT8_C(   3), INT8_C( -62),
                           INT8_C(  42), INT8_C(  72), INT8_C(  91), INT8_C(  86),
                           INT8_C( -72), INT8_C(   9), INT8_C( -80), INT8_C( 118)),
      simde_mm512_set_epi8(INT8_C(   0), INT8_C( -31), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(   0), INT8_C( -11), INT8_C(  12),
                           INT8_C(   0), INT8_C(   0), INT8_C(-128), INT8_C(   0),
                           INT8_C(  36), INT8_C(  50), INT8_C(   0), INT8_C(  10),
                           INT8_C(   0), INT8_C(   0), INT8_C( -62), INT8_C( 104),
                           INT8_C(   0), INT8_C(   0), INT8_C(-128), INT8_C(   6),
                           INT8_C(-128), INT8_C(   0), INT8_C( -74), INT8_C(   0),
                           INT8_C(   0), INT8_C(   5), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(-105), INT8_C( -96), INT8_C( -45),
                           INT8_C(  76), INT8_C(  46), INT8_C( -79), INT8_C(   0),
                           INT8_C(   0), INT8_C(-128), INT8_C(  89), INT8_C(   0),
                           INT8_C( -98), INT8_C(-128), INT8_C(   0), INT8_C(   0),
                           INT8_C( 127), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(  59), INT8_C(   0), INT8_C( -24),
                           INT8_C( -39), INT8_C(   0), INT8_C(  80), INT8_C( -38),
                           INT8_C(  -1), INT8_C(   0), INT8_C(   0), INT8_C( 127)) },
    { UINT64_C(17498311407133456191),
      simde_mm512_set_epi8(INT8_C(  61), INT8_C( -89), INT8_C(  84), INT8_C( -94),
                           INT8_C(  31), INT8_C(-116), INT8_C( -67), INT8_C(-102),
                           INT8_C( -72), INT8_C( -91), INT8_C(-105), INT8_C(-108),
                           INT8_C( -44), INT8_C(  74), INT8_C( -28), INT8_C( 124),
                           INT8_C( 120), INT8_C( -41), INT8_C( -79), INT8_C( 122),
                           INT8_C(  87), INT8_C(-119), INT8_C(  54), INT8_C(  -2),
                           INT8_C( -47), INT8_C(  84), INT8_C(-126), INT8_C( -64),
                           INT8_C(  14), INT8_C(  11), INT8_C(  37), INT8_C( -23),
                           INT8_C(  67), INT8_C( 124), INT8_C(  58), INT8_C( -94),
                           INT8_C(  30), INT8_C( -33), INT8_C(  70), INT8_C( -24),
                           INT8_C(  38), INT8_C( -97), INT8_C( -56), INT8_C( -60),
                           INT8_C( -59), INT8_C(  65), INT8_C( -74), INT8_C(  45),
                           INT8_C( -11), INT8_C(  55), INT8_C( -82), INT8_C(  12),
                           INT8_C( 106), INT8_C(  22), INT8_C(-124), INT8_C(  -4),
                           INT8_C(   2), INT8_C( -81), INT8_C(  14), INT8_C(  90),
                           INT8_C(-100), INT8_C(-122), INT8_C( -35), INT8_C(  81)),
      simde_mm512_set_epi8(INT8_C(  21), INT8_C( 108), INT8_C( 125), INT8_C( -60),
                           INT8_C( -72), INT8_C(  74), INT8_C(  -5), INT8_C( -58),
                           INT8_C( -41), INT8_C(  22), INT8_C(-115), INT8_C( 102),
                           INT8_C(  59), INT8_C( -80), INT8_C( -15), INT8_C( -63),
                           INT8_C(  84), INT8_C( -71), INT8_C(   8), INT8_C(  12),
                           INT8_C( -11), INT8_C( -76), INT8_C(  62), INT8_C(  93),
                           INT8_C( -75), INT8_C( -77), INT8_C( -84), INT8_C(-108),
                           INT8_C( -35), INT8_C(  14), INT8_C( -60), INT8_C(  18),
                           INT8_C(  23), INT8_C( -60), INT8_C( -63), INT8_C(-114),
                           INT8_C( -55), INT8_C(  75), INT8_C( -99), INT8_C( -55),
                           INT8_C(  58), INT8_C(  76), INT8_C(-102), INT8_C(-118),
                           INT8_C( -30), INT8_C(  39), INT8_C( 119), INT8_C(  85),
                           INT8_C(  -8), INT8_C( -72), INT8_C( -60), INT8_C( -94),
                           INT8_C(-112), INT8_C( 119), INT8_C( 124), INT8_C(  76),
                           INT8_C( -42), INT8_C(-124), INT8_C(  54), INT8_C(  74),
                           INT8_C( -92), INT8_C(  99), INT8_C(  79), INT8_C(  -3)),
      simde_mm512_set_epi8(INT8_C(  82), INT8_C(  19), INT8_C( 127), INT8_C(-128),
                           INT8_C(   0), INT8_C(   0), INT8_C( -72), INT8_C(   0),
                           INT8_C(-113), INT8_C( -69), INT8_C(   0), INT8_C(  -6),
                           INT8_C(   0), INT8_C(  -6), INT8_C( -43), INT8_C(   0),
                           INT8_C(   0), INT8_C(-112), INT8_C( -71), INT8_C( 127),
                           INT8_C(  76), INT8_C(-128), INT8_C(   0), INT8_C(  91),
                           INT8_C(-122), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(   0), INT8_C( -23), INT8_C(  -5),
                           INT8_C(  90), INT8_C(  64), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(  42), INT8_C( -29), INT8_C( -79),
                           INT8_C(   0), INT8_C( -21), INT8_C(   0), INT8_C(-128),
                           INT8_C( -89), INT8_C(   0), INT8_C(  45), INT8_C(   0),
                           INT8_C( -19), INT8_C( -17), INT8_C(-128), INT8_C( -82),
                           INT8_C(   0), INT8_C( 127), INT8_C(   0), INT8_C(  72),
                           INT8_C(   0), INT8_C(   0), INT8_C(  68), INT8_C( 127),
                           INT8_C(-128), INT8_C( -23), INT8_C(  44), INT8_C(  78)) },
    { UINT64_C( 3462613925466476941),
      simde_mm512_set_epi8(INT8_C(  18), INT8_C( -74), INT8_C(  14), INT8_C(  36),
                           INT8_C(  -7), INT8_C( 113), INT8_C(  40), INT8_C(  48),
                           INT8_C(-107), INT8_C( -34), INT8_C( -75), INT8_C(  85),
                           INT8_C( -35), INT8_C(-116), INT8_C(  65), INT8_C( -21),
                           INT8_C(  15), INT8_C(   3), INT8_C(  45), INT8_C(  21),
                           INT8_C(  72), INT8_C(  93), INT8_C( 108), INT8_C( 125),
                           INT8_C(   1), INT8_C(  75), INT8_C(  21), INT8_C( -36),
                           INT8_C(-126), INT8_C( 122), INT8_C(  71), INT8_C(  76),
                           INT8_C(  28), INT8_C( -56), INT8_C(  32), INT8_C( 101),
                           INT8_C(-107), INT8_C(-111), INT8_C( -88), INT8_C( -19),
                           INT8_C( -77), INT8_C(  19), INT8_C( -21), INT8_C(-111),
                           INT8_C( -68), INT8_C(  82), INT8_C(-118), INT8_C( -76),
                           INT8_C(  47), INT8_C( 127), INT8_C(  62), INT8_C( -16),
                           INT8_C(  10), INT8_C( -14), INT8_C(-100), INT8_C(  86),
                           INT8_C(  29), INT8_C( 107), INT8_C(  56), INT8_C(  21),
                           INT8_C(  24), INT8_C(  68), INT8_C( -96), INT8_C(  64)),
      simde_mm512_set_epi8(INT8_C( -57), INT8_C(  94), INT8_C(-125), INT8_C(-124),
                           INT8_C(  36), INT8_C(  57), INT8_C(  68), INT8_C( -52),
                           INT8_C(  39), INT8_C(  50), INT8_C( -48), INT8_C(  94),
                           INT8_C(  53), INT8_C(  11), INT8_C(  29), INT8_C(  65),
                           INT8_C( -82), INT8_C(-119), INT8_C( 115), INT8_C(  68),
                           INT8_C( -69), INT8_C( 118), INT8_C(  17), INT8_C(   8),
                           INT8_C( -64), INT8_C( -53), INT8_C( -42), INT8_C( 126),
                           INT8_C(  67), INT8_C(  50), INT8_C( -18), INT8_C(  76),
                           INT8_C( -19), INT8_C( 123), INT8_C( -87), INT8_C( 106),
                           INT8_C( -74), INT8_C(  44), INT8_C( 117), INT8_C( 103),
                           INT8_C(  81), INT8_C( 122), INT8_C(  56), INT8_C( -10),
                           INT8_C(  67), INT8_C(  79), INT8_C(  83), INT8_C( -38),
                           INT8_C( -13), INT8_C(  43), INT8_C(  27), INT8_C( -97),
                           INT8_C( 102), INT8_C( 126), INT8_C(  38), INT8_C( -62),
                           INT8_C( -24), INT8_C( 117), INT8_C( -38), INT8_C( -93),
                           INT8_C( -58), INT8_C(-124), INT8_C( -75), INT8_C(  10)),
      simde_mm512_set_epi8(INT8_C(   0), INT8_C(   0), INT8_C(-111), INT8_C( -88),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(  18), INT8_C(-105), INT8_C(   0), INT8_C(  44),
                           INT8_C( -67), INT8_C(   0), INT8_C( 127), INT8_C(   0),
                           INT8_C(   3), INT8_C( 127), INT8_C(   0), INT8_C( 127),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C( 127), INT8_C(   0), INT8_C(   0),
                           INT8_C(   9), INT8_C(  67), INT8_C( -55), INT8_C( 127),
                           INT8_C(-128), INT8_C( -67), INT8_C(   0), INT8_C(  84),
                           INT8_C(   4), INT8_C( 127), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(-113),
                           INT8_C(   0), INT8_C(   0), INT8_C(   0), INT8_C(  24),
                           INT8_C(   5), INT8_C(   0), INT8_C(   0), INT8_C(   0),
                           INT8_C( -34), INT8_C( -56), INT8_C(   0), INT8_C(  74)) },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde__m512i r = simde_mm512_maskz_adds_epi8(test_vec[i].k, test_vec[i].a, test_vec[i].b);
    simde_assert_m512i_i8(r, ==, test_vec[i].r);
  }

  return 0;
}

static int
test_simde_mm512_adds_epi16(SIMDE_MUNIT_TEST_ARGS) {
  const struct {
    simde__m512i a;
    simde__m512i b;
    simde__m512i r;
  } test_vec[8] = {
    { simde_mm512_set_epi16(INT16_C(  5952), INT16_C(-21138), INT16_C( 23605), INT16_C( -3799),
                            INT16_C(  1987), INT16_C( 29254), INT16_C( -4184), INT16_C( 13346),
                            INT16_C( 26203), INT16_C(-24373), INT16_C( 15487), INT16_C( 15569),
                            INT16_C( 13821), INT16_C( -3315), INT16_C( 30667), INT16_C(  9811),
                            INT16_C( 22769), INT16_C( 21964), INT16_C(  -315), INT16_C(-15723),
                            INT16_C( -9658), INT16_C(-27088), INT16_C( 18289), INT16_C( 13213),
                            INT16_C(-12712), INT16_C( 23293), INT16_C( 12497), INT16_C( 16576),
                            INT16_C(-19358), INT16_C(-11263), INT16_C( -3745), INT16_C(  7925)),
      simde_mm512_set_epi16(INT16_C(-22600), INT16_C(  9825), INT16_C( 27347), INT16_C( -4649),
                            INT16_C(  4812), INT16_C( 27489), INT16_C( 14729), INT16_C(-20872),
                            INT16_C(-24487), INT16_C( 23053), INT16_C( 28966), INT16_C(-23890),
                            INT16_C( -9737), INT16_C(-24021), INT16_C( 12009), INT16_C(-16892),
                            INT16_C(-11018), INT16_C( -7664), INT16_C( 22598), INT16_C(  9112),
                            INT16_C(  -468), INT16_C(-16246), INT16_C( 11633), INT16_C(  3402),
                            INT16_C( 12940), INT16_C(-18453), INT16_C(-10463), INT16_C(-24372),
                            INT16_C(  9722), INT16_C(  4912), INT16_C( 14086), INT16_C( -2976)),
      simde_mm512_set_epi16(INT16_C(-16648), INT16_C(-11313), INT16_C( 32767), INT16_C( -8448),
                            INT16_C(  6799), INT16_C( 32767), INT16_C( 10545), INT16_C( -7526),
                            INT16_C(  1716), INT16_C( -1320), INT16_C( 32767), INT16_C( -8321),
                            INT16_C(  4084), INT16_C(-27336), INT16_C( 32767), INT16_C( -7081),
                            INT16_C( 11751), INT16_C( 14300), INT16_C( 22283), INT16_C( -6611),
                            INT16_C(-10126), INT16_C(-32768), INT16_C( 29922), INT16_C( 16615),
                            INT16_C(   228), INT16_C(  4840), INT16_C(  2034), INT16_C( -7796),
                            INT16_C( -9636), INT16_C( -6351), INT16_C( 10341), INT16_C(  4949)) },
    { simde_mm512_set_epi16(INT16_C(-21870), INT16_C( -1966), INT16_C(-26101), INT16_C(  8905),
                            INT16_C(-13069), INT16_C( 13555), INT16_C(-23554), INT16_C(-12947),
                            INT16_C( 31779), INT16_C( 21013), INT16_C( 32688), INT16_C( 12512),
                            INT16_C(-26721), INT16_C(  7598), INT16_C( 21566), INT16_C(-11203),
                            INT16_C( 27021), INT16_C( -8539), INT16_C(  -532), INT16_C(-17200),
                            INT16_C(-18609), INT16_C(-30604), INT16_C(  6829), INT16_C(-13538),
                            INT16_C( 21529), INT16_C( 29340), INT16_C( 23176), INT16_C( 10860),
                            INT16_C( 31408), INT16_C(  3656), INT16_C(-30572), INT16_C( -4393)),
      simde_mm512_set_epi16(INT16_C( 29137), INT16_C( 29112), INT16_C(-21893), INT16_C( 14830),
                            INT16_C( 28350), INT16_C( 21222), INT16_C( 26922), INT16_C( 26197),
                            INT16_C(-25881), INT16_C( 28163), INT16_C(-19268), INT16_C( 10158),
                            INT16_C(-29245), INT16_C( 16103), INT16_C(-23323), INT16_C( 12478),
                            INT16_C( -6515), INT16_C( 24007), INT16_C(-28366), INT16_C(-32677),
                            INT16_C(-27350), INT16_C(-26916), INT16_C(-11979), INT16_C( 13820),
                            INT16_C(-22393), INT16_C(-20903), INT16_C( -9892), INT16_C(-22447),
                            INT16_C(-14286), INT16_C(  3532), INT16_C( 19664), INT16_C(-26842)),
      simde_mm512_set_epi16(INT16_C(  7267), INT16_C( 27146), INT16_C(-32768), INT16_C( 23735),
                            INT16_C( 15281), INT16_C( 32767), INT16_C(  3368), INT16_C( 13250),
                            INT16_C(  5898), INT16_C( 32767), INT16_C( 13420), INT16_C( 22670),
                            INT16_C(-32768), INT16_C( 23701), INT16_C( -1757), INT16_C(  1275),
                            INT16_C( 20506), INT16_C( 15468), INT16_C(-28898), INT16_C(-32768),
                            INT16_C(-32768), INT16_C(-32768), INT16_C( -5150), INT16_C(   282),
                            INT16_C(  -864), INT16_C(  8437), INT16_C( 13284), INT16_C(-11587),
                            INT16_C( 17122), INT16_C(  7188), INT16_C(-10908), INT16_C(-31235)) },
    { simde_mm512_set_epi16(INT16_C(-22689), INT16_C( 25207), INT16_C( -9300), INT16_C( 28977),
                            INT16_C(  2270), INT16_C(-32394), INT16_C( 26182), INT16_C( 23367),
                            INT16_C( 31661), INT16_C(  9636), INT16_C(-18580), INT16_C(-28875),
                            INT16_C(-25943), INT16_C( 14067), INT16_C( 10599), INT16_C( 30831),
                            INT16_C(-23557), INT16_C( 11377), INT16_C( -4608), INT16_C( 14955),
                            INT16_C( 11781), INT16_C(-12602), INT16_C( -3223), INT16_C( 11440),
                            INT16_C( -2896), INT16_C(-24304), INT16_C( 29156), INT16_C( -4347),
                            INT16_C( -2421), INT16_C( 31033), INT16_C( -3132), INT16_C(-19324)),
      simde_mm512_set_epi16(INT16_C( -2724), INT16_C(  4704), INT16_C( 23772), INT16_C(-20368),
                            INT16_C(-30374), INT16_C( 15838), INT16_C( 19402), INT16_C( 16976),
                            INT16_C(-28476), INT16_C( -2715), INT16_C(-27679), INT16_C( -8608),
                            INT16_C(-20120), INT16_C( 29206), INT16_C( -1643), INT16_C(-29856),
                            INT16_C( 18656), INT16_C( -9660), INT16_C( -4660), INT16_C(-30272),
                            INT16_C(   610), INT16_C( -3787), INT16_C( 22038), INT16_C(-29446),
                            INT16_C(-26504), INT16_C(-28984), INT16_C(-21830), INT16_C(-27507),
                            INT16_C( 24148), INT16_C(-12945), INT16_C( 24529), INT16_C(  7913)),
      simde_mm512_set_epi16(INT16_C(-25413), INT16_C( 29911), INT16_C( 14472), INT16_C(  8609),
                            INT16_C(-28104), INT16_C(-16556), INT16_C( 32767), INT16_C( 32767),
                            INT16_C(  3185), INT16_C(  6921), INT16_C(-32768), INT16_C(-32768),
                            INT16_C(-32768), INT16_C( 32767), INT16_C(  8956), INT16_C(   975),
                            INT16_C( -4901), INT16_C(  1717), INT16_C( -9268), INT16_C(-15317),
                            INT16_C( 12391), INT16_C(-16389), INT16_C( 18815), INT16_C(-18006),
                            INT16_C(-29400), INT16_C(-32768), INT16_C(  7326), INT16_C(-31854),
                            INT16_C( 21727), INT16_C( 18088), INT16_C( 21397), INT16_C(-11411)) },
    { simde_mm512_set_epi16(INT16_C(-18069), INT16_C( 21685), INT16_C( -5808), INT16_C( 24672),
                            INT16_C( -8190), INT16_C( -2830), INT16_C(-23214), INT16_C(  1083),
                            INT16_C(  6699), INT16_C(   871), INT16_C(-14072), INT16_C( -2337),
                            INT16_C( 13356), INT16_C(  7260), INT16_C(-23788), INT16_C(-19723),
                            INT16_C( 13480), INT16_C(-15429), INT16_C(-20153), INT16_C( 18680),
                            INT16_C(-26180), INT16_C( 27923), INT16_C(-14099), INT16_C( 25829),
                            INT16_C(-27481), INT16_C( 21639), INT16_C( 16654), INT16_C( 19972),
                            INT16_C( 15776), INT16_C( 23126), INT16_C( 30799), INT16_C(-14043)),
      simde_mm512_set_epi16(INT16_C( 16111), INT16_C(-26103), INT16_C( -8800), INT16_C(-24747),
                            INT16_C( 27941), INT16_C(   603), INT16_C( -8112), INT16_C(-28325),
                            INT16_C( -6110), INT16_C(-15530), INT16_C(  -938), INT16_C(-26515),
                            INT16_C( -2492), INT16_C( 16124), INT16_C(-27181), INT16_C( -3573),
                            INT16_C( 11652), INT16_C( 11646), INT16_C(  6964), INT16_C( 27675),
                            INT16_C( 13103), INT16_C( -2742), INT16_C( 27906), INT16_C( -1077),
                            INT16_C(-30636), INT16_C(-23050), INT16_C(  8363), INT16_C( 31350),
                            INT16_C( -4750), INT16_C(  -220), INT16_C( -8954), INT16_C( 15617)),
      simde_mm512_set_epi16(INT16_C( -1958), INT16_C( -4418), INT16_C(-14608), INT16_C(   -75),
                            INT16_C( 19751), INT16_C( -2227), INT16_C(-31326), INT16_C(-27242),
                            INT16_C(   589), INT16_C(-14659), INT16_C(-15010), INT16_C(-28852),
                            INT16_C( 10864), INT16_C( 23384), INT16_C(-32768), INT16_C(-23296),
                            INT16_C( 25132), INT16_C( -3783), INT16_C(-13189), INT16_C( 32767),
                            INT16_C(-13077), INT16_C( 25181), INT16_C( 13807), INT16_C( 24752),
                            INT16_C(-32768), INT16_C( -1411), INT16_C( 25017), INT16_C( 32767),
                            INT16_C( 11026), INT16_C( 22906), INT16_C( 21845), INT16_C(  1574)) },
    { simde_mm512_set_epi16(INT16_C( 25180), INT16_C(-32332), INT16_C(-18604), INT16_C(-25763),
                            INT16_C( 28237), INT16_C(-22027), INT16_C( 18301), INT16_C( 27599),
                            INT16_C( 11815), INT16_C(-14839), INT16_C(-13552), INT16_C( -6300),
                            INT16_C(-30211), INT16_C(-25552), INT16_C(  7375), INT16_C(  5267),
                            INT16_C(-14761), INT16_C(-28375), INT16_C(-32756), INT16_C( 13128),
                            INT16_C( 17683), INT16_C( -4430), INT16_C( -1805), INT16_C(-17763),
                            INT16_C(   206), INT16_C( 15851), INT16_C(  1078), INT16_C( 27402),
                            INT16_C(-15177), INT16_C(  5068), INT16_C(-15079), INT16_C(-13584)),
      simde_mm512_set_epi16(INT16_C( -3533), INT16_C( -3885), INT16_C(   789), INT16_C( -3755),
                            INT16_C(  3668), INT16_C( 19955), INT16_C(-22356), INT16_C(  8403),
                            INT16_C(-16920), INT16_C( 15195), INT16_C( -1853), INT16_C(-12121),
                            INT16_C(  5095), INT16_C( -9909), INT16_C(   574), INT16_C( 31911),
                            INT16_C( -1319), INT16_C( -2880), INT16_C(-31000), INT16_C(-30829),
                            INT16_C(-12917), INT16_C( 21541), INT16_C( 27413), INT16_C(-28040),
                            INT16_C(-19236), INT16_C(-24178), INT16_C(-29369), INT16_C( -3607),
                            INT16_C( -2666), INT16_C(-13470), INT16_C(  4416), INT16_C( 23850)),
      simde_mm512_set_epi16(INT16_C( 21647), INT16_C(-32768), INT16_C(-17815), INT16_C(-29518),
                            INT16_C( 31905), INT16_C( -2072), INT16_C( -4055), INT16_C( 32767),
                            INT16_C( -5105), INT16_C(   356), INT16_C(-15405), INT16_C(-18421),
                            INT16_C(-25116), INT16_C(-32768), INT16_C(  7949), INT16_C( 32767),
                            INT16_C(-16080), INT16_C(-31255), INT16_C(-32768), INT16_C(-17701),
                            INT16_C(  4766), INT16_C( 17111), INT16_C( 25608), INT16_C(-32768),
                            INT16_C(-19030), INT16_C( -8327), INT16_C(-28291), INT16_C( 23795),
                            INT16_C(-17843), INT16_C( -8402), INT16_C(-10663), INT16_C( 10266)) },
    { simde_mm512_set_epi16(INT16_C( 11424), INT16_C( 29699), INT16_C( 29618), INT16_C(-29898),
                            INT16_C(-23079), INT16_C( -6822), INT16_C( -7340), INT16_C(-12296),
                            INT16_C( 17833), INT16_C( -2043), INT16_C(-29766), INT16_C( 30776),
                            INT16_C(-18161), INT16_C(-32768), INT16_C(-31882), INT16_C(  3163),
                            INT16_C( 20808), INT16_C(-24577), INT16_C(  7685), INT16_C(  6279),
                            INT16_C(-27880), INT16_C( 27718), INT16_C(-18275), INT16_C( 24470),
                            INT16_C(  8834), INT16_C( 20594), INT16_C( 23052), INT16_C(-18860),
                            INT16_C(  7784), INT16_C(-16668), INT16_C(-30440), INT16_C(  6387)),
      simde_mm512_set_epi16(INT16_C( 15054), INT16_C(-23448), INT16_C(   866), INT16_C(-23509),
                            INT16_C(    -2), INT16_C(  6267), INT16_C(-15891), INT16_C(-24685),
                            INT16_C( 17511), INT16_C(  7218), INT16_C(-13659), INT16_C(-27162),
                            INT16_C( 10378), INT16_C(-16488), INT16_C(-11578), INT16_C(-27832),
                            INT16_C(-17566), INT16_C(-29377), INT16_C( -2221), INT16_C( 18656),
                            INT16_C(  7516), INT16_C(-30776), INT16_C(-19010), INT16_C( 26269),
                            INT16_C(-18451), INT16_C( 31467), INT16_C(-22066), INT16_C( 30155),
                            INT16_C( -3394), INT16_C( -6131), INT16_C( 13533), INT16_C( 21770)),
      simde_mm512_set_epi16(INT16_C( 26478), INT16_C(  6251), INT16_C( 30484), INT16_C(-32768),
                            INT16_C(-23081), INT16_C(  -555), INT16_C(-23231), INT16_C(-32768),
                            INT16_C( 32767), INT16_C(  5175), INT16_C(-32768), INT16_C(  3614),
                            INT16_C( -7783), INT16_C(-32768), INT16_C(-32768), INT16_C(-24669),
                            INT16_C(  3242), INT16_C(-32768), INT16_C(  5464), INT16_C( 24935),
                            INT16_C(-20364), INT16_C( -3058), INT16_C(-32768), INT16_C( 32767),
                            INT16_C( -9617), INT16_C( 32767), INT16_C(   986), INT16_C( 11295),
                            INT16_C(  4390), INT16_C(-22799), INT16_C(-16907), INT16_C( 28157)) },
    { simde_mm512_set_epi16(INT16_C( 11108), INT16_C(  5360), INT16_C(  8246), INT16_C(  2034),
                            INT16_C(  1485), INT16_C( 28421), INT16_C( 17428), INT16_C(-13900),
                            INT16_C(  4889), INT16_C( 17148), INT16_C( 13806), INT16_C(-26968),
                            INT16_C( -7783), INT16_C( 11345), INT16_C( 17472), INT16_C( 26483),
                            INT16_C(-10340), INT16_C( -7816), INT16_C( 22407), INT16_C( 32028),
                            INT16_C( 18301), INT16_C(-30148), INT16_C( -4736), INT16_C(-10574),
                            INT16_C( 10686), INT16_C( -5463), INT16_C( 19858), INT16_C( -4320),
                            INT16_C(-28154), INT16_C(  8984), INT16_C( 32741), INT16_C( 29052)),
      simde_mm512_set_epi16(INT16_C(-22772), INT16_C(-14596), INT16_C( -9458), INT16_C(  2054),
                            INT16_C(-24090), INT16_C(  1808), INT16_C(  9897), INT16_C( 20003),
                            INT16_C( 21444), INT16_C(  8548), INT16_C( -1773), INT16_C(  8905),
                            INT16_C( 14811), INT16_C(  5752), INT16_C(-17876), INT16_C( -7032),
                            INT16_C(-19669), INT16_C(-30631), INT16_C(-19220), INT16_C( 18906),
                            INT16_C( 15935), INT16_C(  2767), INT16_C(-30937), INT16_C( 13780),
                            INT16_C( 28270), INT16_C( 29263), INT16_C( 11106), INT16_C( 19546),
                            INT16_C( 16947), INT16_C(-29470), INT16_C( -1882), INT16_C(-19990)),
      simde_mm512_set_epi16(INT16_C(-11664), INT16_C( -9236), INT16_C( -1212), INT16_C(  4088),
                            INT16_C(-22605), INT16_C( 30229), INT16_C( 27325), INT16_C(  6103),
                            INT16_C( 26333), INT16_C( 25696), INT16_C( 12033), INT16_C(-18063),
                            INT16_C(  7028), INT16_C( 17097), INT16_C(  -404), INT16_C( 19451),
                            INT16_C(-30009), INT16_C(-32768), INT16_C(  3187), INT16_C( 32767),
                            INT16_C( 32767), INT16_C(-27381), INT16_C(-32768), INT16_C(  3206),
                            INT16_C( 32767), INT16_C( 23800), INT16_C( 30964), INT16_C( 15226),
                            INT16_C(-11207), INT16_C(-20486), INT16_C( 30859), INT16_C(  9062)) },
    { simde_mm512_set_epi16(INT16_C(-30561), INT16_C( -5745), INT16_C( 32288), INT16_C( 11324),
                            INT16_C(-18220), INT16_C(-24874), INT16_C(-10154), INT16_C( 15837),
                            INT16_C( 22748), INT16_C(  6197), INT16_C( 23429), INT16_C(-23495),
                            INT16_C( -9809), INT16_C(-19367), INT16_C(-10631), INT16_C( -3845),
                            INT16_C( -5637), INT16_C(-22436), INT16_C(  6126), INT16_C( 16975),
                            INT16_C(  5830), INT16_C( 26963), INT16_C(-12238), INT16_C( 18631),
                            INT16_C(-23641), INT16_C(-17151), INT16_C(-13103), INT16_C(  5981),
                            INT16_C( 25710), INT16_C( 32081), INT16_C(-26911), INT16_C(-20494)),
      simde_mm512_set_epi16(INT16_C( 30869), INT16_C(-18069), INT16_C(  6380), INT16_C(-23760),
                            INT16_C( -6614), INT16_C( 32014), INT16_C( -2152), INT16_C( 25253),
                            INT16_C( -8172), INT16_C(-22416), INT16_C(  2949), INT16_C(  5712),
                            INT16_C( 30074), INT16_C( 20521), INT16_C( 28471), INT16_C( -3867),
                            INT16_C( -3892), INT16_C( 21304), INT16_C(  2611), INT16_C(  5827),
                            INT16_C(-30009), INT16_C( 31479), INT16_C(-19390), INT16_C(  1047),
                            INT16_C(-19967), INT16_C( 11404), INT16_C( 25909), INT16_C(  6741),
                            INT16_C(  1933), INT16_C(-26599), INT16_C(-25469), INT16_C(-30351)),
      simde_mm512_set_epi16(INT16_C(   308), INT16_C(-23814), INT16_C( 32767), INT16_C(-12436),
                            INT16_C(-24834), INT16_C(  7140), INT16_C(-12306), INT16_C( 32767),
                            INT16_C( 14576), INT16_C(-16219), INT16_C( 26378), INT16_C(-17783),
                            INT16_C( 20265), INT16_C(  1154), INT16_C( 17840), INT16_C( -7712),
                            INT16_C( -9529), INT16_C( -1132), INT16_C(  8737), INT16_C( 22802),
                            INT16_C(-24179), INT16_C( 32767), INT16_C(-31628), INT16_C( 19678),
                            INT16_C(-32768), INT16_C( -5747), INT16_C( 12806), INT16_C( 12722),
                            INT16_C( 27643), INT16_C(  5482), INT16_C(-32768), INT16_C(-32768)) }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde__m512i r = simde_mm512_adds_epi16(test_vec[i].a, test_vec[i].b);
    simde_assert_m512i_i16(r, ==, test_vec[i].r);
  }

  return 0;
}

static int
test_simde_mm512_mask_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const int16_t src[32];
    const simde__mmask32 k;
    const int16_t a[32];
    const int16_t b[32];
    const int16_t r[32];
  } test_vec[] = {
    { {  INT16_C(    72), -INT16_C(  5287), -INT16_C(  4542),  INT16_C(  2288), -INT16_C(  8745),  INT16_C( 27056), -INT16_C( 11265), -INT16_C( 27298),
        -INT16_C( 32448), -INT16_C( 11055), -INT16_C( 28733),  INT16_C(  7301),  INT16_C( 28274), -INT16_C( 27095), -INT16_C(  1294),  INT16_C( 15311),
         INT16_C( 10490),  INT16_C( 15398),  INT16_C(  5654), -INT16_C(  4795), -INT16_C(  2572), -INT16_C(  3241), -INT16_C( 19000),  INT16_C(  2185),
         INT16_C( 23095), -INT16_C(  1315),  INT16_C( 25321),  INT16_C( 23574),  INT16_C( 16336), -INT16_C( 15374), -INT16_C( 16071),  INT16_C( 13566) },
      UINT32_C(   7349481),
      { -INT16_C( 19142),  INT16_C( 12013),  INT16_C( 17579),  INT16_C( 29474), -INT16_C( 21510),  INT16_C( 12668),  INT16_C( 22789), -INT16_C(  4565),
         INT16_C( 17083), -INT16_C( 29878),  INT16_C( 15489), -INT16_C( 17586),  INT16_C( 19709), -INT16_C(  6161),  INT16_C( 24432), -INT16_C( 21529),
        -INT16_C( 11243), -INT16_C( 16167), -INT16_C(  1255),  INT16_C(  4915), -INT16_C( 20570), -INT16_C( 21692),  INT16_C( 28424), -INT16_C( 15462),
        -INT16_C(  6991),  INT16_C( 13135), -INT16_C( 25311),  INT16_C(  7918), -INT16_C(  8726),  INT16_C( 23045), -INT16_C(  5060),  INT16_C( 20741) },
      { -INT16_C(  8255), -INT16_C(  9711),  INT16_C( 17882), -INT16_C( 32275),  INT16_C( 12788), -INT16_C(   724), -INT16_C( 14688),  INT16_C( 21184),
         INT16_C(  4011), -INT16_C( 13179),  INT16_C( 29613), -INT16_C( 26646), -INT16_C(  4016), -INT16_C( 29455), -INT16_C(  2084), -INT16_C( 25122),
        -INT16_C(  4138), -INT16_C( 20361),  INT16_C( 25652),  INT16_C( 10545),  INT16_C( 24213),  INT16_C( 13862), -INT16_C(  6620), -INT16_C( 12408),
         INT16_C(  3574), -INT16_C( 23653), -INT16_C( 31104), -INT16_C( 12230),  INT16_C( 11126),  INT16_C( 21084),  INT16_C( 14882), -INT16_C(  1808) },
      { -INT16_C( 27397), -INT16_C(  5287), -INT16_C(  4542), -INT16_C(  2801), -INT16_C(  8745),  INT16_C( 11944),  INT16_C(  8101),  INT16_C( 16619),
        -INT16_C( 32448), -INT16_C( 11055),       INT16_MAX,  INT16_C(  7301),  INT16_C( 28274),       INT16_MIN, -INT16_C(  1294),  INT16_C( 15311),
         INT16_C( 10490),  INT16_C( 15398),  INT16_C(  5654), -INT16_C(  4795),  INT16_C(  3643), -INT16_C(  7830),  INT16_C( 21804),  INT16_C(  2185),
         INT16_C( 23095), -INT16_C(  1315),  INT16_C( 25321),  INT16_C( 23574),  INT16_C( 16336), -INT16_C( 15374), -INT16_C( 16071),  INT16_C( 13566) } },
    { {  INT16_C( 26410),  INT16_C( 24233), -INT16_C(  9524),  INT16_C( 24967), -INT16_C( 21192),  INT16_C( 23959),  INT16_C(  8084), -INT16_C( 30164),
        -INT16_C( 14292), -INT16_C( 21459),  INT16_C( 26446), -INT16_C( 15236), -INT16_C(  9838), -INT16_C( 19178),  INT16_C(  1555),  INT16_C( 15789),
         INT16_C( 22126),  INT16_C( 15004),  INT16_C(  9009),  INT16_C( 27035),  INT16_C( 13265),  INT16_C( 26054), -INT16_C(  3246),  INT16_C( 32751),
         INT16_C(  7355),  INT16_C(  2347), -INT16_C( 22397),  INT16_C(  5581), -INT16_C(  7295), -INT16_C( 27446),  INT16_C( 30954),  INT16_C( 22738) },
      UINT32_C(4287786702),
      {  INT16_C( 11665),  INT16_C( 25193),  INT16_C( 12128), -INT16_C( 19513), -INT16_C( 18910), -INT16_C(  8910),  INT16_C( 24018),  INT16_C( 21990),
        -INT16_C( 19707), -INT16_C( 31125),  INT16_C( 13719), -INT16_C( 32485), -INT16_C(  4691),  INT16_C( 31961),  INT16_C( 27483), -INT16_C(  4997),
        -INT16_C(  7016), -INT16_C(  1713),  INT16_C(  5652),  INT16_C( 13996), -INT16_C(  8499), -INT16_C( 24812), -INT16_C(  1477),  INT16_C( 16885),
         INT16_C( 24750),  INT16_C( 17863), -INT16_C(  7531),  INT16_C( 17350), -INT16_C( 24625),  INT16_C( 10943),  INT16_C( 14858), -INT16_C( 24041) },
      {  INT16_C( 26143),  INT16_C( 13211),  INT16_C( 18300),  INT16_C( 18793),  INT16_C( 32037),  INT16_C( 25065), -INT16_C(  8584),  INT16_C(  9890),
         INT16_C( 26942), -INT16_C( 11413),  INT16_C( 12620),  INT16_C(  6934), -INT16_C( 10800), -INT16_C(  9658),  INT16_C( 23824),  INT16_C( 12156),
         INT16_C(  6339),  INT16_C( 16226), -INT16_C( 13473), -INT16_C( 31351),  INT16_C( 29257), -INT16_C( 15898), -INT16_C( 30640), -INT16_C( 28953),
         INT16_C( 21233),  INT16_C( 15713),  INT16_C( 30851),  INT16_C( 21337), -INT16_C( 24755),  INT16_C( 23853), -INT16_C( 22020), -INT16_C( 16500) },
      {  INT16_C( 26410),       INT16_MAX,  INT16_C( 30428), -INT16_C(   720), -INT16_C( 21192),  INT16_C( 23959),  INT16_C( 15434),  INT16_C( 31880),
        -INT16_C( 14292),       INT16_MIN,  INT16_C( 26339), -INT16_C( 25551), -INT16_C(  9838),  INT16_C( 22303),       INT16_MAX,  INT16_C( 15789),
         INT16_C( 22126),  INT16_C( 14513),  INT16_C(  9009),  INT16_C( 27035),  INT16_C( 20758),  INT16_C( 26054), -INT16_C(  3246), -INT16_C( 12068),
              INT16_MAX,       INT16_MAX,  INT16_C( 23320),       INT16_MAX,       INT16_MIN,       INT16_MAX, -INT16_C(  7162),       INT16_MIN } },
    { { -INT16_C(  4415),  INT16_C(  8702), -INT16_C( 30790),  INT16_C(   934), -INT16_C( 29447),  INT16_C( 18884), -INT16_C( 21740),  INT16_C(  1495),
         INT16_C( 14845), -INT16_C( 32701), -INT16_C( 25423), -INT16_C(   301),  INT16_C(    59),  INT16_C( 14172), -INT16_C(  5975),  INT16_C( 27638),
        -INT16_C(  2857), -INT16_C( 28276),  INT16_C( 12924),  INT16_C( 30100),  INT16_C( 22718), -INT16_C( 11585), -INT16_C( 27133),  INT16_C(   215),
         INT16_C(  6863), -INT16_C( 32640),  INT16_C( 21430), -INT16_C(  3713), -INT16_C(  9389), -INT16_C(   984),  INT16_C(  7875), -INT16_C( 26009) },
      UINT32_C(2402022163),
      { -INT16_C( 16603), -INT16_C(  7420), -INT16_C( 15593),  INT16_C(  6837), -INT16_C( 29350),  INT16_C( 10522), -INT16_C( 25945),  INT16_C( 24234),
         INT16_C( 10733),  INT16_C( 16463),  INT16_C( 30724), -INT16_C( 14531), -INT16_C( 23402), -INT16_C( 22174), -INT16_C( 29288), -INT16_C( 17096),
         INT16_C( 15693),  INT16_C( 25761),  INT16_C( 22016),  INT16_C( 23167), -INT16_C( 26141), -INT16_C( 29820),  INT16_C( 11828),  INT16_C(  8681),
         INT16_C( 14423),  INT16_C( 23394), -INT16_C( 24656),  INT16_C( 18210), -INT16_C( 31677), -INT16_C(  9232),  INT16_C( 10514),  INT16_C( 24473) },
      {  INT16_C( 14950),  INT16_C( 26307),  INT16_C( 17040),  INT16_C( 29889),  INT16_C( 17884),  INT16_C(  4351), -INT16_C(  6029), -INT16_C( 13775),
        -INT16_C( 27872), -INT16_C( 11995),  INT16_C( 18226),  INT16_C( 30232),  INT16_C(  2252), -INT16_C(  8623), -INT16_C(  5583), -INT16_C( 26819),
         INT16_C(    36), -INT16_C( 18946), -INT16_C( 16573),  INT16_C(  7977),  INT16_C( 10244),  INT16_C( 30511),  INT16_C( 24592),  INT16_C( 12353),
         INT16_C( 26356),  INT16_C(  9729),  INT16_C(  6573),  INT16_C( 31132), -INT16_C(  4574),  INT16_C( 21335), -INT16_C( 27432), -INT16_C(   533) },
      { -INT16_C(  1653),  INT16_C( 18887), -INT16_C( 30790),  INT16_C(   934), -INT16_C( 11466),  INT16_C( 18884), -INT16_C( 21740),  INT16_C(  1495),
        -INT16_C( 17139),  INT16_C(  4468), -INT16_C( 25423), -INT16_C(   301), -INT16_C( 21150), -INT16_C( 30797),       INT16_MIN,       INT16_MIN,
         INT16_C( 15729),  INT16_C(  6815),  INT16_C( 12924),  INT16_C( 31144),  INT16_C( 22718),  INT16_C(   691), -INT16_C( 27133),  INT16_C(   215),
              INT16_MAX,       INT16_MAX, -INT16_C( 18083),       INT16_MAX, -INT16_C(  9389), -INT16_C(   984),  INT16_C(  7875),  INT16_C( 23940) } },
    { { -INT16_C(  5739), -INT16_C( 10062), -INT16_C(  9304), -INT16_C( 21257),  INT16_C(  9731),  INT16_C(  4899),  INT16_C( 25734),  INT16_C( 31299),
         INT16_C( 17866),  INT16_C( 30625),  INT16_C( 15710), -INT16_C( 32527),  INT16_C( 18475),  INT16_C(  1236), -INT16_C( 16419),  INT16_C( 29185),
        -INT16_C( 19544),  INT16_C( 20554),  INT16_C( 16782), -INT16_C( 28164),  INT16_C(  8039), -INT16_C(  4700), -INT16_C(  6269),  INT16_C( 19816),
         INT16_C(  2348), -INT16_C( 29756), -INT16_C( 19130),  INT16_C( 29195), -INT16_C(  8194), -INT16_C(  9354),  INT16_C( 30622),  INT16_C( 17997) },
      UINT32_C(3096876842),
      { -INT16_C( 27944),  INT16_C( 16201), -INT16_C(  4687),  INT16_C( 13356), -INT16_C( 27436),  INT16_C(   385),  INT16_C( 18077), -INT16_C(  7028),
        -INT16_C( 26629), -INT16_C(  1706), -INT16_C( 13193),  INT16_C(  5588),  INT16_C(  8515),  INT16_C( 27996), -INT16_C(  3400), -INT16_C( 28635),
         INT16_C( 28293),  INT16_C( 14031), -INT16_C(   933),  INT16_C( 12139), -INT16_C(  4976),  INT16_C( 11824), -INT16_C( 17358),  INT16_C( 11794),
         INT16_C( 26708), -INT16_C( 13529), -INT16_C(   972),  INT16_C( 30688),  INT16_C( 15389), -INT16_C( 10524),  INT16_C(  2351), -INT16_C( 19354) },
      {  INT16_C( 13943), -INT16_C( 11542),  INT16_C( 21810), -INT16_C( 15871),  INT16_C( 12866),  INT16_C( 29936),  INT16_C(   750),  INT16_C( 17058),
        -INT16_C( 13718), -INT16_C( 25075), -INT16_C(  4410), -INT16_C(  7403), -INT16_C(  1750),  INT16_C( 22969),  INT16_C(  8194),  INT16_C( 30989),
        -INT16_C(  1962), -INT16_C( 30645),  INT16_C( 19789), -INT16_C( 28854),  INT16_C( 15231),  INT16_C( 27908), -INT16_C( 22979), -INT16_C( 22352),
        -INT16_C( 17040),  INT16_C( 13894),  INT16_C( 23723), -INT16_C( 10726), -INT16_C( 11435),  INT16_C( 22575),  INT16_C( 15859),  INT16_C( 18897) },
      { -INT16_C(  5739),  INT16_C(  4659), -INT16_C(  9304), -INT16_C(  2515),  INT16_C(  9731),  INT16_C( 30321),  INT16_C( 25734),  INT16_C( 31299),
              INT16_MIN, -INT16_C( 26781), -INT16_C( 17603), -INT16_C( 32527),  INT16_C(  6765),  INT16_C(  1236), -INT16_C( 16419),  INT16_C(  2354),
        -INT16_C( 19544), -INT16_C( 16614),  INT16_C( 18856), -INT16_C( 28164),  INT16_C( 10255), -INT16_C(  4700), -INT16_C(  6269), -INT16_C( 10558),
         INT16_C(  2348), -INT16_C( 29756), -INT16_C( 19130),  INT16_C( 19962),  INT16_C(  3954),  INT16_C( 12051),  INT16_C( 30622), -INT16_C(   457) } },
    { {  INT16_C(  7477), -INT16_C( 32047),  INT16_C(  7274), -INT16_C(  5870),  INT16_C(  5719), -INT16_C( 27562),  INT16_C(  1724),  INT16_C( 11580),
        -INT16_C( 31804),  INT16_C( 28515),  INT16_C( 32223),  INT16_C( 13381),  INT16_C( 30033),  INT16_C( 17548),  INT16_C( 24242), -INT16_C(  6258),
         INT16_C( 24443), -INT16_C(  6807),  INT16_C( 31611), -INT16_C( 11570),  INT16_C(  9361),  INT16_C( 20071), -INT16_C( 23765), -INT16_C(  4229),
        -INT16_C(  8666),  INT16_C(  1374), -INT16_C( 23460), -INT16_C( 21190), -INT16_C( 14823), -INT16_C( 13327),  INT16_C( 32548), -INT16_C( 24654) },
      UINT32_C(1518607327),
      {  INT16_C( 21143),  INT16_C( 10285), -INT16_C( 27529), -INT16_C( 23946), -INT16_C(  3785),  INT16_C( 24209), -INT16_C(  4144),  INT16_C( 11363),
        -INT16_C( 25197), -INT16_C( 21287), -INT16_C( 13724), -INT16_C( 30601),  INT16_C( 10570),  INT16_C( 10536), -INT16_C( 21435), -INT16_C(  9085),
        -INT16_C( 20225),  INT16_C( 30212),  INT16_C( 31556),  INT16_C( 31768), -INT16_C( 22164),  INT16_C( 15578),  INT16_C( 15768),  INT16_C( 11368),
         INT16_C( 16859),  INT16_C( 16344),  INT16_C( 20492),  INT16_C( 22215), -INT16_C(  4231), -INT16_C( 16769),  INT16_C(   668), -INT16_C( 25702) },
      { -INT16_C( 24653), -INT16_C(  2287),  INT16_C( 10522), -INT16_C( 31117),  INT16_C( 19922),  INT16_C( 27331),  INT16_C( 11147),  INT16_C( 26262),
         INT16_C( 28525),  INT16_C( 31141),  INT16_C( 27839),  INT16_C( 14543),  INT16_C( 20060), -INT16_C(  1801), -INT16_C( 28336),  INT16_C(   915),
        -INT16_C( 23504),  INT16_C( 19195),  INT16_C( 28365), -INT16_C( 24623), -INT16_C( 27460),  INT16_C( 18185), -INT16_C( 24385),  INT16_C( 11437),
         INT16_C( 21007), -INT16_C( 12635),  INT16_C( 29886),  INT16_C(  6662), -INT16_C(   574),  INT16_C(  4882), -INT16_C( 23153), -INT16_C( 16618) },
      { -INT16_C(  3510),  INT16_C(  7998), -INT16_C( 17007),       INT16_MIN,  INT16_C( 16137), -INT16_C( 27562),  INT16_C(  7003),       INT16_MAX,
         INT16_C(  3328),  INT16_C(  9854),  INT16_C( 32223), -INT16_C( 16058),  INT16_C( 30630),  INT16_C( 17548),  INT16_C( 24242), -INT16_C(  6258),
         INT16_C( 24443), -INT16_C(  6807),       INT16_MAX, -INT16_C( 11570),  INT16_C(  9361),  INT16_C( 20071), -INT16_C( 23765),  INT16_C( 22805),
        -INT16_C(  8666),  INT16_C(  3709), -INT16_C( 23460),  INT16_C( 28877), -INT16_C(  4805), -INT16_C( 13327), -INT16_C( 22485), -INT16_C( 24654) } },
    { {  INT16_C(  4425),  INT16_C(  5642), -INT16_C(  9344),  INT16_C( 15541), -INT16_C( 16529),  INT16_C( 11907),  INT16_C( 12383),  INT16_C( 28251),
         INT16_C(   130),  INT16_C( 16444),  INT16_C( 17013),  INT16_C( 14171),  INT16_C( 27968), -INT16_C( 12470),  INT16_C( 24851),  INT16_C( 23694),
        -INT16_C( 26510), -INT16_C(  3469),  INT16_C( 10355), -INT16_C(  7634), -INT16_C( 19993),  INT16_C( 17937),  INT16_C( 27873),  INT16_C( 25524),
        -INT16_C(  3988), -INT16_C(  7772), -INT16_C(   205),  INT16_C( 29465),  INT16_C( 25452),  INT16_C( 32578), -INT16_C( 12092),  INT16_C( 14300) },
      UINT32_C(3693694825),
      {  INT16_C( 22647),  INT16_C( 24511), -INT16_C( 12279), -INT16_C(  5211),  INT16_C( 23100), -INT16_C( 22450), -INT16_C(  3510),  INT16_C( 32138),
        -INT16_C( 23567),  INT16_C( 24304),  INT16_C( 12806), -INT16_C( 13347), -INT16_C( 18173),  INT16_C( 27650),  INT16_C( 11016), -INT16_C( 32696),
         INT16_C(  1923), -INT16_C( 29217), -INT16_C( 31529),  INT16_C(  4984), -INT16_C( 14626),  INT16_C( 10684),  INT16_C( 18105), -INT16_C( 21850),
        -INT16_C( 26647), -INT16_C(  4344), -INT16_C(  6455), -INT16_C( 13126), -INT16_C( 17249), -INT16_C( 22472), -INT16_C( 32280),  INT16_C( 27432) },
      {  INT16_C(  1928),  INT16_C( 24824),  INT16_C( 28811),  INT16_C( 27251),  INT16_C( 12087), -INT16_C(  3949),  INT16_C( 14709),  INT16_C( 24218),
        -INT16_C( 23600), -INT16_C( 26034),  INT16_C(  2185),  INT16_C( 10342), -INT16_C( 24635), -INT16_C( 21040), -INT16_C(  2016), -INT16_C( 22504),
         INT16_C(  4607), -INT16_C( 29944),  INT16_C( 31873), -INT16_C( 18187), -INT16_C( 30549),  INT16_C(  8616),  INT16_C( 17345), -INT16_C( 28033),
        -INT16_C( 12826),  INT16_C( 28460), -INT16_C( 27946), -INT16_C( 25705),  INT16_C( 26673),  INT16_C( 20808),  INT16_C( 24672),  INT16_C( 24826) },
      {  INT16_C( 24575),  INT16_C(  5642), -INT16_C(  9344),  INT16_C( 22040), -INT16_C( 16529), -INT16_C( 26399),  INT16_C( 11199),  INT16_C( 28251),
              INT16_MIN, -INT16_C(  1730),  INT16_C( 14991), -INT16_C(  3005),  INT16_C( 27968), -INT16_C( 12470),  INT16_C(  9000),  INT16_C( 23694),
         INT16_C(  6530), -INT16_C(  3469),  INT16_C( 10355), -INT16_C( 13203), -INT16_C( 19993),  INT16_C( 19300),  INT16_C( 27873),  INT16_C( 25524),
        -INT16_C(  3988), -INT16_C(  7772),       INT16_MIN,       INT16_MIN,  INT16_C(  9424),  INT16_C( 32578), -INT16_C(  7608),       INT16_MAX } },
    { {  INT16_C(   625), -INT16_C(  3093), -INT16_C(  8066),  INT16_C( 10923),  INT16_C( 21608),  INT16_C( 10571), -INT16_C( 13673),  INT16_C( 32187),
        -INT16_C(  6248),  INT16_C( 28396), -INT16_C( 31878), -INT16_C( 21751),  INT16_C( 20971),  INT16_C( 19709), -INT16_C(  2127),  INT16_C(  9132),
        -INT16_C( 26631),  INT16_C( 30742), -INT16_C( 16009), -INT16_C(  8286), -INT16_C(  4843), -INT16_C( 21496), -INT16_C( 15177),  INT16_C( 20265),
         INT16_C(  5547),  INT16_C(  9661), -INT16_C( 14695), -INT16_C( 31535), -INT16_C( 12777), -INT16_C( 13872),  INT16_C( 31941), -INT16_C( 16660) },
      UINT32_C(2318795283),
      { -INT16_C( 10045), -INT16_C(  9879),  INT16_C( 29381),  INT16_C( 32133), -INT16_C( 20682), -INT16_C(  7732), -INT16_C( 30012),  INT16_C( 23815),
        -INT16_C( 10160),  INT16_C( 26850), -INT16_C( 19802),  INT16_C( 27441),  INT16_C(  7471),  INT16_C( 16937),  INT16_C( 24607), -INT16_C(  7475),
         INT16_C( 13880), -INT16_C(   325),  INT16_C( 16808), -INT16_C(  8581),  INT16_C( 18416), -INT16_C( 19264), -INT16_C( 14383),  INT16_C(  8722),
        -INT16_C(  2913),  INT16_C( 17802), -INT16_C( 17498), -INT16_C( 10832), -INT16_C(  9768), -INT16_C(  2280), -INT16_C(  6855),  INT16_C( 29401) },
      { -INT16_C( 27365), -INT16_C( 15248), -INT16_C(  5162), -INT16_C( 14686),  INT16_C( 25138),  INT16_C(  1146), -INT16_C( 29655), -INT16_C( 14298),
        -INT16_C( 20352),  INT16_C(  9997), -INT16_C( 17045),  INT16_C( 17404),  INT16_C(  5271), -INT16_C( 12230),  INT16_C(  5113),  INT16_C(  5442),
        -INT16_C( 19800),  INT16_C( 32473),  INT16_C( 31645), -INT16_C( 12220), -INT16_C( 16418),  INT16_C(  2004), -INT16_C(  1461), -INT16_C( 13104),
        -INT16_C(  8790),  INT16_C(  5619), -INT16_C(  4197),  INT16_C( 12888), -INT16_C( 28156), -INT16_C(   766),  INT16_C( 17829),  INT16_C( 19986) },
      {       INT16_MIN, -INT16_C( 25127), -INT16_C(  8066),  INT16_C( 10923),  INT16_C(  4456),  INT16_C( 10571), -INT16_C( 13673),  INT16_C( 32187),
        -INT16_C(  6248),       INT16_MAX, -INT16_C( 31878), -INT16_C( 21751),  INT16_C( 20971),  INT16_C( 19709), -INT16_C(  2127),  INT16_C(  9132),
        -INT16_C( 26631),  INT16_C( 32148),       INT16_MAX, -INT16_C(  8286),  INT16_C(  1998), -INT16_C( 17260), -INT16_C( 15177),  INT16_C( 20265),
         INT16_C(  5547),  INT16_C( 23421), -INT16_C( 14695),  INT16_C(  2056), -INT16_C( 12777), -INT16_C( 13872),  INT16_C( 31941),       INT16_MAX } },
    { { -INT16_C(  5129), -INT16_C( 27188),  INT16_C(  4455),  INT16_C( 17765),  INT16_C( 14800),  INT16_C(  6988),  INT16_C(  7219), -INT16_C(  8729),
        -INT16_C(  9478), -INT16_C( 27150),  INT16_C( 19146), -INT16_C( 12601), -INT16_C( 13860), -INT16_C( 32309), -INT16_C(  8690),  INT16_C(  1743),
        -INT16_C( 25399),  INT16_C( 12443),  INT16_C(   173),  INT16_C( 32117), -INT16_C( 15815),  INT16_C( 27800), -INT16_C( 32546), -INT16_C( 10167),
         INT16_C( 15194),  INT16_C(  9325),  INT16_C( 13445),  INT16_C( 25074), -INT16_C( 16642),  INT16_C(  3298), -INT16_C( 19812),  INT16_C( 25874) },
      UINT32_C(4220955982),
      {  INT16_C(  2989), -INT16_C(  6536),  INT16_C(  4301), -INT16_C( 21422), -INT16_C( 25712), -INT16_C(  5244), -INT16_C(  3370),  INT16_C( 23311),
         INT16_C(   550),  INT16_C(  9404), -INT16_C( 24640),  INT16_C( 23601),  INT16_C( 17233), -INT16_C( 24639),  INT16_C( 22513), -INT16_C( 24934),
         INT16_C(  4707),  INT16_C( 12421), -INT16_C( 10462), -INT16_C( 19492),  INT16_C( 24947),  INT16_C( 18846), -INT16_C( 21165),  INT16_C( 31141),
         INT16_C( 25007),  INT16_C( 28574), -INT16_C( 12544),  INT16_C( 20939), -INT16_C( 29422),  INT16_C(  1008), -INT16_C( 29980),  INT16_C( 18338) },
      {  INT16_C( 10140), -INT16_C( 16520),  INT16_C( 21758),  INT16_C( 29042),  INT16_C(  4277),  INT16_C(  2235),  INT16_C( 24765),  INT16_C( 28034),
         INT16_C(  8385), -INT16_C( 15652), -INT16_C( 22289),  INT16_C(   275),  INT16_C(  1077),  INT16_C(  6405), -INT16_C( 22642),  INT16_C( 11105),
        -INT16_C(  9778), -INT16_C( 13078),  INT16_C( 23597), -INT16_C(  7362), -INT16_C(  1684),  INT16_C( 10731),  INT16_C( 27993),  INT16_C(  6806),
         INT16_C( 29581),  INT16_C( 31964), -INT16_C(  4069),  INT16_C( 20606), -INT16_C( 31756), -INT16_C( 32151), -INT16_C( 13782), -INT16_C(  1875) },
      { -INT16_C(  5129), -INT16_C( 23056),  INT16_C( 26059),  INT16_C(  7620),  INT16_C( 14800),  INT16_C(  6988),  INT16_C( 21395), -INT16_C(  8729),
         INT16_C(  8935), -INT16_C( 27150),       INT16_MIN,  INT16_C( 23876), -INT16_C( 13860), -INT16_C( 18234), -INT16_C(  8690), -INT16_C( 13829),
        -INT16_C( 25399), -INT16_C(   657),  INT16_C( 13135),  INT16_C( 32117),  INT16_C( 23263),  INT16_C( 27800), -INT16_C( 32546),       INT16_MAX,
              INT16_MAX,       INT16_MAX,  INT16_C( 13445),       INT16_MAX,       INT16_MIN, -INT16_C( 31143),       INT16_MIN,  INT16_C( 16463) } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i src = simde_mm512_loadu_epi16(test_vec[i].src);
    simde__m512i a = simde_mm512_loadu_epi16(test_vec[i].a);
    simde__m512i b = simde_mm512_loadu_epi16(test_vec[i].b);
    simde__m512i r = simde_mm512_mask_adds_epi16(src, test_vec[i].k, a, b);
    simde_test_x86_assert_equal_i16x32(r, simde_mm512_loadu_epi16(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_mm512_maskz_adds_epi16 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const simde__mmask32 k;
    const int16_t a[32];
    const int16_t b[32];
    const int16_t r[32];
  } test_vec[] = {
    { UINT32_C(1382488990),
      {  INT16_C( 13382), -INT16_C(  1131), -INT16_C(  8449),  INT16_C(  8490),  INT16_C( 27735),  INT16_C( 28052), -INT16_C( 21201),  INT16_C( 29768),
         INT16_C( 19795), -INT16_C( 30934), -INT16_C( 32642),  INT16_C( 22005),  INT16_C(  9346),  INT16_C(  8543), -INT16_C( 14529), -INT16_C( 31373),
         INT16_C(  2299), -INT16_C(  1408), -INT16_C( 21530),  INT16_C( 15643), -INT16_C( 20713),  INT16_C( 18091), -INT16_C(  3236), -INT16_C( 20549),
        -INT16_C(  6847), -INT16_C( 16586),  INT16_C( 11109), -INT16_C(  6124),  INT16_C( 29776), -INT16_C( 28919),  INT16_C( 31803),  INT16_C( 13845) },
      { -INT16_C( 27260),  INT16_C( 27184),  INT16_C( 19264),  INT16_C( 22695),  INT16_C( 21242),  INT16_C( 22174),  INT16_C( 22854), -INT16_C( 30971),
         INT16_C( 15423), -INT16_C( 23482),  INT16_C( 23399), -INT16_C( 18548), -INT16_C( 27185),  INT16_C(  2631),  INT16_C( 23569), -INT16_C( 27328),
         INT16_C( 28913),  INT16_C( 13055), -INT16_C( 22597), -INT16_C( 19062),  INT16_C( 10489),  INT16_C( 16139),  INT16_C(  4226), -INT16_C( 15930),
         INT16_C(  3404), -INT16_C( 19355), -INT16_C(  3480),  INT16_C( 14187), -INT16_C( 19833), -INT16_C( 26303), -INT16_C( 32498),  INT16_C(    46) },
      {  INT16_C(     0),  INT16_C( 26053),  INT16_C( 10815),  INT16_C( 31185),       INT16_MAX,  INT16_C(     0),  INT16_C(     0), -INT16_C(  1203),
              INT16_MAX,       INT16_MIN,  INT16_C(     0),  INT16_C(  3457), -INT16_C( 17839),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
         INT16_C( 31212),  INT16_C( 11647),       INT16_MIN,  INT16_C(     0),  INT16_C(     0),       INT16_MAX,  INT16_C(   990),  INT16_C(     0),
         INT16_C(     0),       INT16_MIN,  INT16_C(     0),  INT16_C(     0),  INT16_C(  9943),  INT16_C(     0), -INT16_C(   695),  INT16_C(     0) } },
    { UINT32_C(2888969969),
      { -INT16_C( 17195), -INT16_C( 12703),  INT16_C( 27876),  INT16_C( 26126), -INT16_C( 11140), -INT16_C( 14041), -INT16_C( 29215),  INT16_C( 18813),
        -INT16_C(  6017),  INT16_C(  1664), -INT16_C( 15973), -INT16_C( 22113), -INT16_C( 12734),  INT16_C( 13225), -INT16_C(  9220), -INT16_C( 11809),
         INT16_C( 16535),  INT16_C( 31903), -INT16_C( 21076),  INT16_C( 10722),  INT16_C(  2690),  INT16_C( 25586),  INT16_C( 28567),  INT16_C(  5805),
         INT16_C( 11607), -INT16_C(  3556), -INT16_C( 17169),  INT16_C( 12700),  INT16_C( 17802), -INT16_C( 31131),  INT16_C( 17441), -INT16_C( 18345) },
      { -INT16_C(  2427),  INT16_C( 12596),  INT16_C(  6052),  INT16_C(  9818),  INT16_C( 19489), -INT16_C( 18295),  INT16_C( 14011),  INT16_C(  5070),
        -INT16_C(  5532),  INT16_C( 21253), -INT16_C( 24154),  INT16_C( 12420), -INT16_C(  5657),  INT16_C(  2230),  INT16_C(  3374), -INT16_C( 19520),
        -INT16_C(  2812), -INT16_C( 22300),  INT16_C( 16140),  INT16_C( 11726),  INT16_C( 22411),  INT16_C( 18405), -INT16_C( 19570), -INT16_C(  3494),
         INT16_C( 24477),  INT16_C( 17477), -INT16_C( 14079), -INT16_C(  6028),  INT16_C( 11187), -INT16_C(  7696), -INT16_C( 20424),  INT16_C( 15508) },
      { -INT16_C( 19622),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(  8349), -INT16_C( 32336), -INT16_C( 15204),  INT16_C( 23883),
         INT16_C(     0),  INT16_C( 22917),       INT16_MIN, -INT16_C(  9693),  INT16_C(     0),  INT16_C( 15455),  INT16_C(     0),  INT16_C(     0),
         INT16_C(     0),  INT16_C(  9603),  INT16_C(     0),  INT16_C(     0),  INT16_C( 25101),       INT16_MAX,  INT16_C(     0),  INT16_C(     0),
         INT16_C(     0),  INT16_C(     0), -INT16_C( 31248),  INT16_C(  6672),  INT16_C(     0),       INT16_MIN,  INT16_C(     0), -INT16_C(  2837) } },
    { UINT32_C(2984540325),
      { -INT16_C( 19785),  INT16_C( 17374), -INT16_C( 15606), -INT16_C( 26486), -INT16_C(  7050),  INT16_C(  5258), -INT16_C( 12477),  INT16_C( 17496),
        -INT16_C( 13160),  INT16_C( 19244),  INT16_C(  7415),  INT16_C( 12332), -INT16_C( 16179),  INT16_C( 29292),  INT16_C( 20793), -INT16_C(  4060),
         INT16_C(   515),  INT16_C(  3379), -INT16_C( 16954),  INT16_C( 15525),  INT16_C( 12193), -INT16_C(  6832), -INT16_C( 22274), -INT16_C( 26839),
         INT16_C( 22133),  INT16_C( 27874),  INT16_C(  3954),  INT16_C( 16284),  INT16_C(  2511),  INT16_C(  2226), -INT16_C( 10662),  INT16_C( 24057) },
      {  INT16_C( 11480), -INT16_C( 24981),  INT16_C(  4330), -INT16_C( 29733),  INT16_C( 11072),  INT16_C( 15984), -INT16_C( 25900),  INT16_C( 18901),
        -INT16_C( 18192),  INT16_C( 25269),  INT16_C( 21191), -INT16_C( 26974),  INT16_C( 21595), -INT16_C( 19041), -INT16_C( 26582),  INT16_C(   530),
         INT16_C( 32196), -INT16_C( 20831),  INT16_C( 31886), -INT16_C( 12742), -INT16_C( 21849),  INT16_C( 31500), -INT16_C(  7612),  INT16_C( 13508),
         INT16_C( 31386),  INT16_C( 24983),  INT16_C( 14796),  INT16_C( 10231), -INT16_C( 26995), -INT16_C( 18468), -INT16_C(  4562), -INT16_C(  3143) },
      { -INT16_C(  8305),  INT16_C(     0), -INT16_C( 11276),  INT16_C(     0),  INT16_C(     0),  INT16_C( 21242),  INT16_C(     0),       INT16_MAX,
         INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C( 14642),  INT16_C(  5416),  INT16_C( 10251), -INT16_C(  5789),  INT16_C(     0),
         INT16_C(     0),  INT16_C(     0),  INT16_C( 14932),  INT16_C(     0),  INT16_C(     0),  INT16_C( 24668), -INT16_C( 29886), -INT16_C( 13331),
              INT16_MAX,  INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C( 24484), -INT16_C( 16242),  INT16_C(     0),  INT16_C( 20914) } },
    { UINT32_C(4204878444),
      { -INT16_C(  9258),  INT16_C( 32456), -INT16_C( 11130), -INT16_C( 13575), -INT16_C( 16714),  INT16_C( 20735), -INT16_C( 27080),  INT16_C(  1201),
        -INT16_C( 22065),  INT16_C( 23595),  INT16_C(  1855),  INT16_C( 28179), -INT16_C( 13067),  INT16_C( 24929),  INT16_C(   551), -INT16_C(   677),
         INT16_C(  9182),  INT16_C( 25723),  INT16_C( 30200), -INT16_C( 20946),  INT16_C( 11571),  INT16_C( 27647), -INT16_C( 20285), -INT16_C( 28049),
        -INT16_C( 26023), -INT16_C( 26130),  INT16_C(   417), -INT16_C( 27129),  INT16_C( 26830), -INT16_C(  2568),  INT16_C( 21354),  INT16_C( 18674) },
      {  INT16_C( 28279),  INT16_C( 28588), -INT16_C(  9245),  INT16_C(  5661),  INT16_C(  7176), -INT16_C( 13183), -INT16_C(  3891),  INT16_C(  9822),
         INT16_C( 19850),  INT16_C( 11199), -INT16_C( 14770),  INT16_C(  7361), -INT16_C( 18130), -INT16_C( 26351),  INT16_C(  1037), -INT16_C( 31519),
        -INT16_C( 29070),  INT16_C( 22003),  INT16_C(  4201),  INT16_C( 29035), -INT16_C(  5075), -INT16_C(  1475), -INT16_C( 25380),  INT16_C( 26144),
        -INT16_C(  7959),  INT16_C( 14225),  INT16_C( 21158), -INT16_C( 10924),  INT16_C( 25868),  INT16_C(  6510),  INT16_C( 20329), -INT16_C(  9315) },
      {  INT16_C(     0),  INT16_C(     0), -INT16_C( 20375), -INT16_C(  7914),  INT16_C(     0),  INT16_C(  7552), -INT16_C( 30971),  INT16_C(     0),
         INT16_C(     0),       INT16_MAX,  INT16_C(     0),       INT16_MAX, -INT16_C( 31197),  INT16_C(     0),  INT16_C(  1588),  INT16_C(     0),
        -INT16_C( 19888),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C( 26172),  INT16_C(     0), -INT16_C(  1905),
         INT16_C(     0), -INT16_C( 11905),  INT16_C(     0),       INT16_MIN,       INT16_MAX,  INT16_C(  3942),       INT16_MAX,  INT16_C(  9359) } },
    { UINT32_C(1177587933),
      { -INT16_C( 25696), -INT16_C( 12872), -INT16_C(  2681),  INT16_C( 25543), -INT16_C(  5999),  INT16_C( 31433),  INT16_C( 23240),  INT16_C( 28338),
         INT16_C(  1709), -INT16_C( 18109), -INT16_C( 20117), -INT16_C( 10798),  INT16_C( 28417), -INT16_C(  8528), -INT16_C(  7681), -INT16_C( 24795),
        -INT16_C(  8836),  INT16_C(  1133),  INT16_C( 13522),  INT16_C( 25703),  INT16_C( 12572), -INT16_C(  6946), -INT16_C( 28533),  INT16_C( 14419),
        -INT16_C( 26986),  INT16_C(   753), -INT16_C( 15544),  INT16_C( 18903), -INT16_C( 30926),  INT16_C( 12583),  INT16_C( 19560), -INT16_C(  6703) },
      {  INT16_C( 15913), -INT16_C(   791),  INT16_C( 20594), -INT16_C( 28832),  INT16_C( 16001),  INT16_C(  3443), -INT16_C( 14641),  INT16_C( 25925),
         INT16_C( 14173), -INT16_C( 23193),  INT16_C( 16122),  INT16_C( 11758),  INT16_C(  5574),  INT16_C( 11870),  INT16_C( 12130), -INT16_C( 29933),
        -INT16_C(   915), -INT16_C(  8057), -INT16_C(  6323), -INT16_C( 12689), -INT16_C(  7642), -INT16_C(  2597),  INT16_C(  8617),  INT16_C(  1626),
        -INT16_C( 15784),  INT16_C( 21163), -INT16_C( 26368), -INT16_C( 14721), -INT16_C(  8530),  INT16_C(  4341),  INT16_C(  2061),  INT16_C( 31644) },
      { -INT16_C(  9783),  INT16_C(     0),  INT16_C( 17913), -INT16_C(  3289),  INT16_C( 10002),  INT16_C(     0),  INT16_C(  8599),       INT16_MAX,
         INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),       INT16_MAX,  INT16_C(     0),  INT16_C(     0),       INT16_MIN,
         INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(  4930), -INT16_C(  9543),  INT16_C(     0),  INT16_C(     0),
         INT16_C(     0),  INT16_C( 21916),       INT16_MIN,  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C( 21621),  INT16_C(     0) } },
    { UINT32_C(1381704453),
      { -INT16_C( 13813),  INT16_C( 12576), -INT16_C(   852),  INT16_C( 21798), -INT16_C( 32739),  INT16_C( 30043),  INT16_C(  1602),  INT16_C( 17351),
         INT16_C( 18335),  INT16_C( 19977), -INT16_C(   475),  INT16_C( 12894), -INT16_C(  1529),  INT16_C(  3245),  INT16_C(  2078),  INT16_C( 10590),
         INT16_C( 32466),  INT16_C( 32602), -INT16_C( 32646), -INT16_C( 26668),  INT16_C( 12288),  INT16_C( 17164), -INT16_C( 11210), -INT16_C( 10618),
        -INT16_C( 28901),  INT16_C( 16420), -INT16_C( 32114), -INT16_C( 27278),  INT16_C(  8317), -INT16_C( 25695), -INT16_C(   216), -INT16_C(  1084) },
      {  INT16_C(  7805), -INT16_C(  1926),  INT16_C( 20126), -INT16_C( 24945), -INT16_C( 25474), -INT16_C( 18975),  INT16_C( 26480), -INT16_C( 29813),
        -INT16_C( 20489), -INT16_C( 31285),  INT16_C( 15665), -INT16_C( 20966), -INT16_C( 17571), -INT16_C( 31159),  INT16_C(  3514),  INT16_C( 14209),
        -INT16_C(  1237), -INT16_C( 14033), -INT16_C( 16567), -INT16_C( 14232),  INT16_C( 18779), -INT16_C( 13443),  INT16_C(  2225), -INT16_C( 22442),
         INT16_C(  8631), -INT16_C(  6099),  INT16_C( 18270), -INT16_C( 17257), -INT16_C(  8190), -INT16_C( 17342), -INT16_C( 15378),  INT16_C(  6643) },
      { -INT16_C(  6008),  INT16_C(     0),  INT16_C( 19274),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
        -INT16_C(  2154), -INT16_C( 11308),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C( 27914),  INT16_C(     0),  INT16_C(     0),
         INT16_C( 31229),  INT16_C( 18569),  INT16_C(     0),       INT16_MIN,  INT16_C( 31067),  INT16_C(     0), -INT16_C(  8985),  INT16_C(     0),
         INT16_C(     0),  INT16_C( 10321),  INT16_C(     0),  INT16_C(     0),  INT16_C(   127),  INT16_C(     0), -INT16_C( 15594),  INT16_C(     0) } },
    { UINT32_C( 132326334),
      {  INT16_C( 19426),  INT16_C( 15823),  INT16_C( 19604),  INT16_C( 17672),  INT16_C( 24148),  INT16_C(  3053),  INT16_C(  6783), -INT16_C(  8716),
        -INT16_C( 29855),  INT16_C( 25497), -INT16_C(  9365),  INT16_C( 22815),  INT16_C(  5022),  INT16_C( 23667),  INT16_C( 22070),  INT16_C(  6244),
         INT16_C( 13217),  INT16_C( 13653),  INT16_C( 23936), -INT16_C( 11141),  INT16_C( 26811),  INT16_C( 15072), -INT16_C( 11133), -INT16_C(  7145),
        -INT16_C( 20129), -INT16_C( 13752),  INT16_C( 26508),  INT16_C( 11044), -INT16_C( 26758), -INT16_C( 20345), -INT16_C(  5139), -INT16_C( 28984) },
      {  INT16_C(  7455), -INT16_C( 24637),  INT16_C( 15994),  INT16_C( 13683),  INT16_C( 21415),  INT16_C( 10863), -INT16_C( 30937), -INT16_C( 31218),
         INT16_C( 22072), -INT16_C( 15279),  INT16_C( 30142),  INT16_C( 14575),  INT16_C( 30476), -INT16_C(  1559), -INT16_C( 20126), -INT16_C( 32377),
         INT16_C( 19151),  INT16_C( 18720), -INT16_C( 27511),  INT16_C( 12415), -INT16_C(  4377),  INT16_C(  3930),  INT16_C( 26741), -INT16_C( 21099),
        -INT16_C(  6465),  INT16_C( 32114),  INT16_C( 24923),  INT16_C( 26549), -INT16_C( 24872),  INT16_C( 15200), -INT16_C(  6320),  INT16_C(  8124) },
      {  INT16_C(     0), -INT16_C(  8814),       INT16_MAX,  INT16_C( 31355),       INT16_MAX,  INT16_C( 13916),  INT16_C(     0),       INT16_MIN,
        -INT16_C(  7783),  INT16_C( 10218),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C( 22108),  INT16_C(     0),  INT16_C(     0),
         INT16_C( 32368),  INT16_C( 32373),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C( 19002),  INT16_C( 15608), -INT16_C( 28244),
        -INT16_C( 26594),  INT16_C( 18362),       INT16_MAX,  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0) } },
    { UINT32_C(3144211762),
      { -INT16_C(  6287),  INT16_C( 22763),  INT16_C( 17878),  INT16_C( 19303), -INT16_C(   595),  INT16_C( 27897),  INT16_C( 27619),  INT16_C( 16361),
        -INT16_C( 24628), -INT16_C( 23130),  INT16_C(  1853), -INT16_C( 29216), -INT16_C( 25362),  INT16_C(  8364),  INT16_C(  5497), -INT16_C(  5413),
        -INT16_C( 14596), -INT16_C( 11709), -INT16_C( 22005), -INT16_C( 18146),  INT16_C(  6055), -INT16_C( 29915),  INT16_C(  3970),  INT16_C( 20170),
         INT16_C( 28846), -INT16_C(  5133), -INT16_C( 11401),  INT16_C( 26233),  INT16_C(  9584), -INT16_C(  5754),  INT16_C( 25146),  INT16_C( 14292) },
      {  INT16_C(  5928),  INT16_C( 13321),  INT16_C( 10177),  INT16_C( 27117),  INT16_C(  4670), -INT16_C( 16140), -INT16_C( 16863), -INT16_C( 12529),
         INT16_C(   558), -INT16_C( 22853),  INT16_C( 13526),  INT16_C( 17932), -INT16_C( 28071), -INT16_C( 27601),  INT16_C(  1012),  INT16_C(  7627),
        -INT16_C( 11238), -INT16_C(  9135),  INT16_C( 16124),  INT16_C( 14917),  INT16_C( 14672),  INT16_C( 29435),  INT16_C(  2807),  INT16_C(  9537),
        -INT16_C(  1012), -INT16_C(  7477), -INT16_C( 10448), -INT16_C( 30168),  INT16_C( 22634),  INT16_C( 24094), -INT16_C(  5797),  INT16_C( 30331) },
      {  INT16_C(     0),       INT16_MAX,  INT16_C(     0),  INT16_C(     0),  INT16_C(  4075),  INT16_C( 11757),  INT16_C(     0),  INT16_C(     0),
        -INT16_C( 24070),  INT16_C(     0),  INT16_C( 15379), -INT16_C( 11284),       INT16_MIN,  INT16_C(     0),  INT16_C(  6509),  INT16_C(  2214),
         INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C(  3229),  INT16_C(     0), -INT16_C(   480),  INT16_C(  6777),  INT16_C(     0),
         INT16_C( 27834), -INT16_C( 12610),  INT16_C(     0), -INT16_C(  3935),  INT16_C( 32218),  INT16_C( 18340),  INT16_C(     0),       INT16_MAX } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i a = simde_mm512_loadu_epi16(test_vec[i].a);
    simde__m512i b = simde_mm512_loadu_epi16(test_vec[i].b);
    simde__m512i r = simde_mm512_maskz_adds_epi16(test_vec[i].k, a, b);
    simde_test_x86_assert_equal_i16x32(r, simde_mm512_loadu_epi16(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_mm512_adds_epu8(SIMDE_MUNIT_TEST_ARGS) {
  const struct {
    simde__m512i a;
    simde__m512i b;
    simde__m512i r;
  } test_vec[8] = {
    { simde_x_mm512_set_epu8(UINT8_C( 52), UINT8_C( 29), UINT8_C( 31), UINT8_C(206),
                             UINT8_C( 40), UINT8_C(160), UINT8_C(244), UINT8_C( 85),
                             UINT8_C( 47), UINT8_C(153), UINT8_C(218), UINT8_C(226),
                             UINT8_C( 99), UINT8_C(129), UINT8_C( 68), UINT8_C(218),
                             UINT8_C(122), UINT8_C( 56), UINT8_C(240), UINT8_C( 10),
                             UINT8_C(228), UINT8_C( 40), UINT8_C( 70), UINT8_C( 14),
                             UINT8_C( 67), UINT8_C( 37), UINT8_C( 87), UINT8_C(131),
                             UINT8_C( 29), UINT8_C(175), UINT8_C(167), UINT8_C(223),
                             UINT8_C(170), UINT8_C( 76), UINT8_C( 39), UINT8_C(254),
                             UINT8_C(222), UINT8_C(105), UINT8_C(193), UINT8_C(144),
                             UINT8_C(182), UINT8_C(106), UINT8_C(199), UINT8_C(161),
                             UINT8_C(173), UINT8_C( 65), UINT8_C( 54), UINT8_C(148),
                             UINT8_C(222), UINT8_C(  9), UINT8_C(237), UINT8_C( 76),
                             UINT8_C(149), UINT8_C(196), UINT8_C(194), UINT8_C(114),
                             UINT8_C(167), UINT8_C( 47), UINT8_C(174), UINT8_C(135),
                             UINT8_C(170), UINT8_C(  1), UINT8_C( 40), UINT8_C( 68)),
      simde_x_mm512_set_epu8(UINT8_C(183), UINT8_C(129), UINT8_C(214), UINT8_C( 34),
                             UINT8_C(187), UINT8_C(142), UINT8_C(238), UINT8_C(248),
                             UINT8_C(175), UINT8_C(127), UINT8_C(231), UINT8_C(164),
                             UINT8_C( 16), UINT8_C(128), UINT8_C( 32), UINT8_C( 28),
                             UINT8_C(111), UINT8_C( 40), UINT8_C(  8), UINT8_C(160),
                             UINT8_C( 37), UINT8_C(193), UINT8_C(195), UINT8_C(135),
                             UINT8_C(102), UINT8_C( 87), UINT8_C(146), UINT8_C(206),
                             UINT8_C( 94), UINT8_C(109), UINT8_C(112), UINT8_C( 83),
                             UINT8_C( 63), UINT8_C(215), UINT8_C( 46), UINT8_C( 55),
                             UINT8_C( 78), UINT8_C(211), UINT8_C(175), UINT8_C(210),
                             UINT8_C( 60), UINT8_C(205), UINT8_C(118), UINT8_C(142),
                             UINT8_C(109), UINT8_C( 48), UINT8_C( 54), UINT8_C( 54),
                             UINT8_C( 99), UINT8_C(248), UINT8_C(120), UINT8_C(165),
                             UINT8_C(189), UINT8_C(132), UINT8_C(130), UINT8_C( 16),
                             UINT8_C(  6), UINT8_C(104), UINT8_C(176), UINT8_C(111),
                             UINT8_C(254), UINT8_C(193), UINT8_C(106), UINT8_C(  5)),
      simde_x_mm512_set_epu8(UINT8_C(235), UINT8_C(158), UINT8_C(245), UINT8_C(240),
                             UINT8_C(227), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(222), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(115), UINT8_C(255), UINT8_C(100), UINT8_C(246),
                             UINT8_C(233), UINT8_C( 96), UINT8_C(248), UINT8_C(170),
                             UINT8_C(255), UINT8_C(233), UINT8_C(255), UINT8_C(149),
                             UINT8_C(169), UINT8_C(124), UINT8_C(233), UINT8_C(255),
                             UINT8_C(123), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(233), UINT8_C(255), UINT8_C( 85), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(242), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C(113), UINT8_C(108), UINT8_C(202),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(241),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(130),
                             UINT8_C(173), UINT8_C(151), UINT8_C(255), UINT8_C(246),
                             UINT8_C(255), UINT8_C(194), UINT8_C(146), UINT8_C( 73)) },
    { simde_x_mm512_set_epu8(UINT8_C( 38), UINT8_C(254), UINT8_C(204), UINT8_C( 72),
                             UINT8_C(177), UINT8_C( 63), UINT8_C( 67), UINT8_C( 50),
                             UINT8_C( 71), UINT8_C(226), UINT8_C(146), UINT8_C(  4),
                             UINT8_C(134), UINT8_C( 91), UINT8_C(195), UINT8_C(148),
                             UINT8_C( 28), UINT8_C(158), UINT8_C(223), UINT8_C(181),
                             UINT8_C(218), UINT8_C(114), UINT8_C(200), UINT8_C(243),
                             UINT8_C(255), UINT8_C( 48), UINT8_C(233), UINT8_C( 82),
                             UINT8_C( 22), UINT8_C( 26), UINT8_C(128), UINT8_C(166),
                             UINT8_C( 79), UINT8_C(206), UINT8_C(109), UINT8_C(113),
                             UINT8_C( 86), UINT8_C(112), UINT8_C(215), UINT8_C(187),
                             UINT8_C(174), UINT8_C(250), UINT8_C(225), UINT8_C(206),
                             UINT8_C(242), UINT8_C(141), UINT8_C(197), UINT8_C(179),
                             UINT8_C( 88), UINT8_C(237), UINT8_C(191), UINT8_C(149),
                             UINT8_C(130), UINT8_C( 63), UINT8_C( 54), UINT8_C(129),
                             UINT8_C(126), UINT8_C( 18), UINT8_C( 43), UINT8_C(251),
                             UINT8_C(214), UINT8_C(155), UINT8_C( 61), UINT8_C(138)),
      simde_x_mm512_set_epu8(UINT8_C(142), UINT8_C( 33), UINT8_C( 51), UINT8_C(244),
                             UINT8_C( 33), UINT8_C(106), UINT8_C( 75), UINT8_C(210),
                             UINT8_C(121), UINT8_C( 52), UINT8_C(233), UINT8_C(109),
                             UINT8_C(205), UINT8_C(175), UINT8_C(230), UINT8_C( 70),
                             UINT8_C( 28), UINT8_C(216), UINT8_C( 76), UINT8_C(137),
                             UINT8_C(129), UINT8_C(  5), UINT8_C(149), UINT8_C(132),
                             UINT8_C(159), UINT8_C( 55), UINT8_C( 47), UINT8_C(212),
                             UINT8_C(202), UINT8_C( 26), UINT8_C(247), UINT8_C( 19),
                             UINT8_C(109), UINT8_C( 59), UINT8_C( 49), UINT8_C(175),
                             UINT8_C( 15), UINT8_C(240), UINT8_C(155), UINT8_C( 20),
                             UINT8_C( 85), UINT8_C( 57), UINT8_C( 91), UINT8_C(177),
                             UINT8_C(179), UINT8_C(200), UINT8_C( 26), UINT8_C( 99),
                             UINT8_C(  9), UINT8_C(177), UINT8_C(151), UINT8_C(246),
                             UINT8_C(116), UINT8_C(162), UINT8_C(144), UINT8_C( 44),
                             UINT8_C(240), UINT8_C(226), UINT8_C(215), UINT8_C(206),
                             UINT8_C(114), UINT8_C(250), UINT8_C(170), UINT8_C(220)),
      simde_x_mm512_set_epu8(UINT8_C(180), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(210), UINT8_C(169), UINT8_C(142), UINT8_C(255),
                             UINT8_C(192), UINT8_C(255), UINT8_C(255), UINT8_C(113),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(218),
                             UINT8_C( 56), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C(119), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C(103), UINT8_C(255), UINT8_C(255),
                             UINT8_C(224), UINT8_C( 52), UINT8_C(255), UINT8_C(185),
                             UINT8_C(188), UINT8_C(255), UINT8_C(158), UINT8_C(255),
                             UINT8_C(101), UINT8_C(255), UINT8_C(255), UINT8_C(207),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C(223), UINT8_C(255),
                             UINT8_C( 97), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(246), UINT8_C(225), UINT8_C(198), UINT8_C(173),
                             UINT8_C(255), UINT8_C(244), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C(231), UINT8_C(255)) },
    { simde_x_mm512_set_epu8(UINT8_C(103), UINT8_C(253), UINT8_C( 31), UINT8_C(185),
                             UINT8_C(101), UINT8_C(201), UINT8_C( 20), UINT8_C( 77),
                             UINT8_C(110), UINT8_C(116), UINT8_C(226), UINT8_C( 37),
                             UINT8_C(155), UINT8_C( 44), UINT8_C(198), UINT8_C(182),
                             UINT8_C(132), UINT8_C( 61), UINT8_C(104), UINT8_C(181),
                             UINT8_C( 77), UINT8_C(161), UINT8_C(154), UINT8_C(195),
                             UINT8_C(148), UINT8_C(239), UINT8_C(178), UINT8_C(165),
                             UINT8_C(  6), UINT8_C(251), UINT8_C( 97), UINT8_C(247),
                             UINT8_C(  8), UINT8_C( 52), UINT8_C( 96), UINT8_C( 34),
                             UINT8_C(233), UINT8_C(  1), UINT8_C(  7), UINT8_C(254),
                             UINT8_C(  3), UINT8_C(  8), UINT8_C(168), UINT8_C(221),
                             UINT8_C(238), UINT8_C(144), UINT8_C( 18), UINT8_C(245),
                             UINT8_C(216), UINT8_C(239), UINT8_C(128), UINT8_C(174),
                             UINT8_C(108), UINT8_C(236), UINT8_C(204), UINT8_C(151),
                             UINT8_C( 83), UINT8_C(224), UINT8_C(253), UINT8_C( 94),
                             UINT8_C( 40), UINT8_C( 10), UINT8_C(195), UINT8_C( 72)),
      simde_x_mm512_set_epu8(UINT8_C(196), UINT8_C(220), UINT8_C(209), UINT8_C(146),
                             UINT8_C( 66), UINT8_C(240), UINT8_C(160), UINT8_C( 58),
                             UINT8_C(206), UINT8_C(157), UINT8_C(225), UINT8_C(238),
                             UINT8_C(235), UINT8_C( 53), UINT8_C( 91), UINT8_C( 97),
                             UINT8_C(175), UINT8_C( 22), UINT8_C( 33), UINT8_C(101),
                             UINT8_C(189), UINT8_C(131), UINT8_C(219), UINT8_C( 30),
                             UINT8_C( 36), UINT8_C( 11), UINT8_C(180), UINT8_C( 46),
                             UINT8_C(126), UINT8_C(239), UINT8_C(135), UINT8_C( 44),
                             UINT8_C(198), UINT8_C(149), UINT8_C(235), UINT8_C( 72),
                             UINT8_C( 18), UINT8_C(214), UINT8_C( 92), UINT8_C(199),
                             UINT8_C( 79), UINT8_C( 28), UINT8_C(156), UINT8_C( 37),
                             UINT8_C(212), UINT8_C(167), UINT8_C( 62), UINT8_C(201),
                             UINT8_C(139), UINT8_C(215), UINT8_C( 68), UINT8_C(117),
                             UINT8_C( 83), UINT8_C(105), UINT8_C(232), UINT8_C(251),
                             UINT8_C(  6), UINT8_C(165), UINT8_C(199), UINT8_C(183),
                             UINT8_C(254), UINT8_C( 55), UINT8_C(167), UINT8_C(238)),
      simde_x_mm512_set_epu8(UINT8_C(255), UINT8_C(255), UINT8_C(240), UINT8_C(255),
                             UINT8_C(167), UINT8_C(255), UINT8_C(180), UINT8_C(135),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C( 97), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C( 83), UINT8_C(137), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(225),
                             UINT8_C(184), UINT8_C(250), UINT8_C(255), UINT8_C(211),
                             UINT8_C(132), UINT8_C(255), UINT8_C(232), UINT8_C(255),
                             UINT8_C(206), UINT8_C(201), UINT8_C(255), UINT8_C(106),
                             UINT8_C(251), UINT8_C(215), UINT8_C( 99), UINT8_C(255),
                             UINT8_C( 82), UINT8_C( 36), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C( 80), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C(196), UINT8_C(255),
                             UINT8_C(191), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C( 89), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C( 65), UINT8_C(255), UINT8_C(255)) },
    { simde_x_mm512_set_epu8(UINT8_C(  7), UINT8_C( 99), UINT8_C(210), UINT8_C(110),
                             UINT8_C(202), UINT8_C( 10), UINT8_C(247), UINT8_C( 68),
                             UINT8_C(177), UINT8_C(186), UINT8_C(247), UINT8_C( 36),
                             UINT8_C(212), UINT8_C(146), UINT8_C(251), UINT8_C( 66),
                             UINT8_C(  0), UINT8_C(  8), UINT8_C(116), UINT8_C(102),
                             UINT8_C(175), UINT8_C(223), UINT8_C( 15), UINT8_C(232),
                             UINT8_C(127), UINT8_C( 63), UINT8_C( 84), UINT8_C(165),
                             UINT8_C( 18), UINT8_C(250), UINT8_C( 71), UINT8_C( 18),
                             UINT8_C(132), UINT8_C(155), UINT8_C(102), UINT8_C( 18),
                             UINT8_C(177), UINT8_C(146), UINT8_C(169), UINT8_C(139),
                             UINT8_C( 21), UINT8_C( 79), UINT8_C(  4), UINT8_C(129),
                             UINT8_C(168), UINT8_C( 42), UINT8_C(  9), UINT8_C(184),
                             UINT8_C( 46), UINT8_C( 53), UINT8_C(243), UINT8_C(140),
                             UINT8_C(158), UINT8_C(112), UINT8_C( 35), UINT8_C( 49),
                             UINT8_C(253), UINT8_C(233), UINT8_C( 33), UINT8_C(178),
                             UINT8_C(117), UINT8_C(161), UINT8_C(168), UINT8_C( 39)),
      simde_x_mm512_set_epu8(UINT8_C( 75), UINT8_C(218), UINT8_C(162), UINT8_C( 30),
                             UINT8_C(119), UINT8_C(231), UINT8_C(193), UINT8_C(230),
                             UINT8_C(151), UINT8_C( 49), UINT8_C(234), UINT8_C( 78),
                             UINT8_C( 76), UINT8_C( 37), UINT8_C(174), UINT8_C(105),
                             UINT8_C(224), UINT8_C(210), UINT8_C(188), UINT8_C(142),
                             UINT8_C(116), UINT8_C(129), UINT8_C( 93), UINT8_C(124),
                             UINT8_C(248), UINT8_C(145), UINT8_C(230), UINT8_C( 41),
                             UINT8_C( 66), UINT8_C(115), UINT8_C(180), UINT8_C( 47),
                             UINT8_C( 55), UINT8_C(104), UINT8_C(123), UINT8_C(150),
                             UINT8_C(165), UINT8_C( 22), UINT8_C(  0), UINT8_C(101),
                             UINT8_C( 55), UINT8_C( 23), UINT8_C( 90), UINT8_C( 64),
                             UINT8_C( 52), UINT8_C(254), UINT8_C(116), UINT8_C(243),
                             UINT8_C(  4), UINT8_C( 84), UINT8_C( 82), UINT8_C(103),
                             UINT8_C( 43), UINT8_C(237), UINT8_C(  7), UINT8_C( 76),
                             UINT8_C( 88), UINT8_C(212), UINT8_C( 63), UINT8_C(146),
                             UINT8_C(224), UINT8_C(223), UINT8_C(207), UINT8_C(220)),
      simde_x_mm512_set_epu8(UINT8_C( 82), UINT8_C(255), UINT8_C(255), UINT8_C(140),
                             UINT8_C(255), UINT8_C(241), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C(235), UINT8_C(255), UINT8_C(114),
                             UINT8_C(255), UINT8_C(183), UINT8_C(255), UINT8_C(171),
                             UINT8_C(224), UINT8_C(218), UINT8_C(255), UINT8_C(244),
                             UINT8_C(255), UINT8_C(255), UINT8_C(108), UINT8_C(255),
                             UINT8_C(255), UINT8_C(208), UINT8_C(255), UINT8_C(206),
                             UINT8_C( 84), UINT8_C(255), UINT8_C(251), UINT8_C( 65),
                             UINT8_C(187), UINT8_C(255), UINT8_C(225), UINT8_C(168),
                             UINT8_C(255), UINT8_C(168), UINT8_C(169), UINT8_C(240),
                             UINT8_C( 76), UINT8_C(102), UINT8_C( 94), UINT8_C(193),
                             UINT8_C(220), UINT8_C(255), UINT8_C(125), UINT8_C(255),
                             UINT8_C( 50), UINT8_C(137), UINT8_C(255), UINT8_C(243),
                             UINT8_C(201), UINT8_C(255), UINT8_C( 42), UINT8_C(125),
                             UINT8_C(255), UINT8_C(255), UINT8_C( 96), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255)) },
    { simde_x_mm512_set_epu8(UINT8_C(233), UINT8_C(112), UINT8_C( 62), UINT8_C( 65),
                             UINT8_C( 37), UINT8_C(247), UINT8_C(105), UINT8_C( 54),
                             UINT8_C(214), UINT8_C(255), UINT8_C(145), UINT8_C( 18),
                             UINT8_C(160), UINT8_C( 92), UINT8_C( 29), UINT8_C(253),
                             UINT8_C(230), UINT8_C( 83), UINT8_C(176), UINT8_C( 43),
                             UINT8_C( 78), UINT8_C( 31), UINT8_C(113), UINT8_C(239),
                             UINT8_C( 38), UINT8_C(192), UINT8_C(127), UINT8_C( 44),
                             UINT8_C(218), UINT8_C(134), UINT8_C(224), UINT8_C( 35),
                             UINT8_C(155), UINT8_C(171), UINT8_C( 44), UINT8_C( 53),
                             UINT8_C(101), UINT8_C(234), UINT8_C(121), UINT8_C( 95),
                             UINT8_C(232), UINT8_C(104), UINT8_C( 20), UINT8_C( 52),
                             UINT8_C( 59), UINT8_C( 62), UINT8_C( 55), UINT8_C( 43),
                             UINT8_C(246), UINT8_C( 36), UINT8_C( 25), UINT8_C( 98),
                             UINT8_C(155), UINT8_C(231), UINT8_C( 43), UINT8_C(203),
                             UINT8_C( 77), UINT8_C( 43), UINT8_C( 80), UINT8_C( 85),
                             UINT8_C(227), UINT8_C( 34), UINT8_C( 77), UINT8_C(179)),
      simde_x_mm512_set_epu8(UINT8_C( 68), UINT8_C(183), UINT8_C(190), UINT8_C(248),
                             UINT8_C( 54), UINT8_C(194), UINT8_C(  0), UINT8_C(190),
                             UINT8_C(102), UINT8_C(185), UINT8_C(  5), UINT8_C(238),
                             UINT8_C(188), UINT8_C(104), UINT8_C(139), UINT8_C(163),
                             UINT8_C(242), UINT8_C( 94), UINT8_C(181), UINT8_C(214),
                             UINT8_C(170), UINT8_C(182), UINT8_C(139), UINT8_C( 96),
                             UINT8_C( 80), UINT8_C( 38), UINT8_C(151), UINT8_C(132),
                             UINT8_C(243), UINT8_C( 37), UINT8_C(120), UINT8_C( 30),
                             UINT8_C(115), UINT8_C( 34), UINT8_C(222), UINT8_C(121),
                             UINT8_C(112), UINT8_C(205), UINT8_C(161), UINT8_C( 52),
                             UINT8_C(142), UINT8_C(118), UINT8_C(195), UINT8_C(200),
                             UINT8_C( 59), UINT8_C(  6), UINT8_C(115), UINT8_C(109),
                             UINT8_C( 93), UINT8_C(174), UINT8_C(200), UINT8_C(190),
                             UINT8_C(151), UINT8_C(126), UINT8_C(210), UINT8_C(200),
                             UINT8_C( 79), UINT8_C( 43), UINT8_C( 20), UINT8_C(239),
                             UINT8_C(149), UINT8_C(119), UINT8_C( 96), UINT8_C(120)),
      simde_x_mm512_set_epu8(UINT8_C(255), UINT8_C(255), UINT8_C(252), UINT8_C(255),
                             UINT8_C( 91), UINT8_C(255), UINT8_C(105), UINT8_C(244),
                             UINT8_C(255), UINT8_C(255), UINT8_C(150), UINT8_C(255),
                             UINT8_C(255), UINT8_C(196), UINT8_C(168), UINT8_C(255),
                             UINT8_C(255), UINT8_C(177), UINT8_C(255), UINT8_C(255),
                             UINT8_C(248), UINT8_C(213), UINT8_C(252), UINT8_C(255),
                             UINT8_C(118), UINT8_C(230), UINT8_C(255), UINT8_C(176),
                             UINT8_C(255), UINT8_C(171), UINT8_C(255), UINT8_C( 65),
                             UINT8_C(255), UINT8_C(205), UINT8_C(255), UINT8_C(174),
                             UINT8_C(213), UINT8_C(255), UINT8_C(255), UINT8_C(147),
                             UINT8_C(255), UINT8_C(222), UINT8_C(215), UINT8_C(252),
                             UINT8_C(118), UINT8_C( 68), UINT8_C(170), UINT8_C(152),
                             UINT8_C(255), UINT8_C(210), UINT8_C(225), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C(253), UINT8_C(255),
                             UINT8_C(156), UINT8_C( 86), UINT8_C(100), UINT8_C(255),
                             UINT8_C(255), UINT8_C(153), UINT8_C(173), UINT8_C(255)) },
    { simde_x_mm512_set_epu8(UINT8_C(150), UINT8_C(150), UINT8_C(146), UINT8_C(157),
                             UINT8_C(103), UINT8_C( 31), UINT8_C(236), UINT8_C(192),
                             UINT8_C(155), UINT8_C( 46), UINT8_C(170), UINT8_C(176),
                             UINT8_C(189), UINT8_C( 74), UINT8_C(246), UINT8_C(  0),
                             UINT8_C( 85), UINT8_C( 30), UINT8_C(190), UINT8_C( 12),
                             UINT8_C(117), UINT8_C( 74), UINT8_C(194), UINT8_C( 97),
                             UINT8_C(132), UINT8_C( 63), UINT8_C(227), UINT8_C( 21),
                             UINT8_C(244), UINT8_C(229), UINT8_C(176), UINT8_C(122),
                             UINT8_C(159), UINT8_C( 35), UINT8_C(115), UINT8_C(240),
                             UINT8_C( 88), UINT8_C(151), UINT8_C(101), UINT8_C(194),
                             UINT8_C( 49), UINT8_C(128), UINT8_C( 87), UINT8_C(152),
                             UINT8_C(173), UINT8_C(242), UINT8_C(150), UINT8_C( 26),
                             UINT8_C(183), UINT8_C( 56), UINT8_C(181), UINT8_C(193),
                             UINT8_C(231), UINT8_C(135), UINT8_C(190), UINT8_C( 42),
                             UINT8_C( 33), UINT8_C(174), UINT8_C( 57), UINT8_C(232),
                             UINT8_C(176), UINT8_C(125), UINT8_C( 87), UINT8_C( 79)),
      simde_x_mm512_set_epu8(UINT8_C( 68), UINT8_C(  1), UINT8_C(208), UINT8_C( 74),
                             UINT8_C(102), UINT8_C(168), UINT8_C( 41), UINT8_C( 41),
                             UINT8_C( 83), UINT8_C( 95), UINT8_C(152), UINT8_C(131),
                             UINT8_C(230), UINT8_C( 27), UINT8_C(126), UINT8_C(230),
                             UINT8_C(128), UINT8_C(133), UINT8_C(107), UINT8_C(197),
                             UINT8_C( 23), UINT8_C(  2), UINT8_C(108), UINT8_C(207),
                             UINT8_C( 82), UINT8_C(175), UINT8_C(247), UINT8_C(180),
                             UINT8_C( 57), UINT8_C( 31), UINT8_C(124), UINT8_C(203),
                             UINT8_C(246), UINT8_C(195), UINT8_C(173), UINT8_C(161),
                             UINT8_C(132), UINT8_C(162), UINT8_C( 13), UINT8_C(205),
                             UINT8_C(225), UINT8_C( 25), UINT8_C( 39), UINT8_C(181),
                             UINT8_C(149), UINT8_C(149), UINT8_C(138), UINT8_C(158),
                             UINT8_C(215), UINT8_C(147), UINT8_C(  0), UINT8_C( 87),
                             UINT8_C(244), UINT8_C( 10), UINT8_C(  1), UINT8_C( 19),
                             UINT8_C(173), UINT8_C(221), UINT8_C(118), UINT8_C( 51),
                             UINT8_C( 98), UINT8_C(183), UINT8_C(125), UINT8_C( 92)),
      simde_x_mm512_set_epu8(UINT8_C(218), UINT8_C(151), UINT8_C(255), UINT8_C(231),
                             UINT8_C(205), UINT8_C(199), UINT8_C(255), UINT8_C(233),
                             UINT8_C(238), UINT8_C(141), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C(101), UINT8_C(255), UINT8_C(230),
                             UINT8_C(213), UINT8_C(163), UINT8_C(255), UINT8_C(209),
                             UINT8_C(140), UINT8_C( 76), UINT8_C(255), UINT8_C(255),
                             UINT8_C(214), UINT8_C(238), UINT8_C(255), UINT8_C(201),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C(230), UINT8_C(255), UINT8_C(255),
                             UINT8_C(220), UINT8_C(255), UINT8_C(114), UINT8_C(255),
                             UINT8_C(255), UINT8_C(153), UINT8_C(126), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(184),
                             UINT8_C(255), UINT8_C(203), UINT8_C(181), UINT8_C(255),
                             UINT8_C(255), UINT8_C(145), UINT8_C(191), UINT8_C( 61),
                             UINT8_C(206), UINT8_C(255), UINT8_C(175), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C(212), UINT8_C(171)) },
    { simde_x_mm512_set_epu8(UINT8_C(166), UINT8_C(112), UINT8_C( 16), UINT8_C( 20),
                             UINT8_C(189), UINT8_C( 23), UINT8_C( 28), UINT8_C(226),
                             UINT8_C( 92), UINT8_C(105), UINT8_C(249), UINT8_C( 71),
                             UINT8_C( 22), UINT8_C(153), UINT8_C( 38), UINT8_C( 58),
                             UINT8_C( 86), UINT8_C(191), UINT8_C( 97), UINT8_C(186),
                             UINT8_C(117), UINT8_C( 93), UINT8_C( 63), UINT8_C(142),
                             UINT8_C( 82), UINT8_C(123), UINT8_C(210), UINT8_C(159),
                             UINT8_C(175), UINT8_C(187), UINT8_C( 33), UINT8_C(134),
                             UINT8_C(156), UINT8_C(243), UINT8_C(191), UINT8_C(139),
                             UINT8_C(173), UINT8_C( 70), UINT8_C(113), UINT8_C( 30),
                             UINT8_C(184), UINT8_C( 82), UINT8_C(234), UINT8_C(177),
                             UINT8_C(234), UINT8_C(131), UINT8_C(180), UINT8_C( 12),
                             UINT8_C( 47), UINT8_C(213), UINT8_C( 54), UINT8_C(222),
                             UINT8_C(114), UINT8_C(251), UINT8_C(236), UINT8_C( 57),
                             UINT8_C(205), UINT8_C(187), UINT8_C( 48), UINT8_C(112),
                             UINT8_C( 34), UINT8_C( 49), UINT8_C( 95), UINT8_C(198)),
      simde_x_mm512_set_epu8(UINT8_C(116), UINT8_C(101), UINT8_C(212), UINT8_C(199),
                             UINT8_C( 88), UINT8_C(165), UINT8_C(253), UINT8_C( 88),
                             UINT8_C(138), UINT8_C( 27), UINT8_C(153), UINT8_C(155),
                             UINT8_C(248), UINT8_C(175), UINT8_C(152), UINT8_C(246),
                             UINT8_C( 17), UINT8_C(224), UINT8_C( 49), UINT8_C(127),
                             UINT8_C(200), UINT8_C( 46), UINT8_C( 58), UINT8_C(159),
                             UINT8_C(177), UINT8_C( 24), UINT8_C(139), UINT8_C(240),
                             UINT8_C( 45), UINT8_C(115), UINT8_C(179), UINT8_C(230),
                             UINT8_C(249), UINT8_C(217), UINT8_C(202), UINT8_C( 21),
                             UINT8_C(134), UINT8_C(111), UINT8_C( 79), UINT8_C(153),
                             UINT8_C(130), UINT8_C( 83), UINT8_C(196), UINT8_C(101),
                             UINT8_C(151), UINT8_C(117), UINT8_C(152), UINT8_C(155),
                             UINT8_C(116), UINT8_C(201), UINT8_C(241), UINT8_C( 71),
                             UINT8_C( 24), UINT8_C(105), UINT8_C(212), UINT8_C(191),
                             UINT8_C(  1), UINT8_C(252), UINT8_C( 15), UINT8_C( 49),
                             UINT8_C(105), UINT8_C(159), UINT8_C(109), UINT8_C( 31)),
      simde_x_mm512_set_epu8(UINT8_C(255), UINT8_C(213), UINT8_C(228), UINT8_C(219),
                             UINT8_C(255), UINT8_C(188), UINT8_C(255), UINT8_C(255),
                             UINT8_C(230), UINT8_C(132), UINT8_C(255), UINT8_C(226),
                             UINT8_C(255), UINT8_C(255), UINT8_C(190), UINT8_C(255),
                             UINT8_C(103), UINT8_C(255), UINT8_C(146), UINT8_C(255),
                             UINT8_C(255), UINT8_C(139), UINT8_C(121), UINT8_C(255),
                             UINT8_C(255), UINT8_C(147), UINT8_C(255), UINT8_C(255),
                             UINT8_C(220), UINT8_C(255), UINT8_C(212), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(160),
                             UINT8_C(255), UINT8_C(181), UINT8_C(192), UINT8_C(183),
                             UINT8_C(255), UINT8_C(165), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C(248), UINT8_C(255), UINT8_C(167),
                             UINT8_C(163), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(138), UINT8_C(255), UINT8_C(255), UINT8_C(248),
                             UINT8_C(206), UINT8_C(255), UINT8_C( 63), UINT8_C(161),
                             UINT8_C(139), UINT8_C(208), UINT8_C(204), UINT8_C(229)) },
    { simde_x_mm512_set_epu8(UINT8_C(239), UINT8_C(174), UINT8_C( 81), UINT8_C( 89),
                             UINT8_C( 63), UINT8_C(160), UINT8_C(219), UINT8_C(204),
                             UINT8_C(161), UINT8_C(  4), UINT8_C(134), UINT8_C(137),
                             UINT8_C( 48), UINT8_C( 33), UINT8_C(178), UINT8_C(122),
                             UINT8_C( 99), UINT8_C(167), UINT8_C( 95), UINT8_C(109),
                             UINT8_C( 38), UINT8_C(191), UINT8_C(  3), UINT8_C( 48),
                             UINT8_C(143), UINT8_C( 51), UINT8_C( 81), UINT8_C( 76),
                             UINT8_C(251), UINT8_C(204), UINT8_C(198), UINT8_C(  1),
                             UINT8_C(175), UINT8_C(123), UINT8_C( 24), UINT8_C(237),
                             UINT8_C(190), UINT8_C( 62), UINT8_C( 87), UINT8_C(255),
                             UINT8_C(119), UINT8_C(202), UINT8_C(  4), UINT8_C( 40),
                             UINT8_C(152), UINT8_C(128), UINT8_C(116), UINT8_C( 72),
                             UINT8_C(245), UINT8_C(148), UINT8_C( 39), UINT8_C(106),
                             UINT8_C(195), UINT8_C(186), UINT8_C(241), UINT8_C(178),
                             UINT8_C( 68), UINT8_C(210), UINT8_C( 61), UINT8_C(218),
                             UINT8_C(116), UINT8_C( 98), UINT8_C( 41), UINT8_C( 22)),
      simde_x_mm512_set_epu8(UINT8_C(  3), UINT8_C(245), UINT8_C(  8), UINT8_C(179),
                             UINT8_C(242), UINT8_C( 19), UINT8_C(107), UINT8_C(170),
                             UINT8_C(178), UINT8_C(175), UINT8_C(174), UINT8_C(170),
                             UINT8_C( 72), UINT8_C(195), UINT8_C(199), UINT8_C( 66),
                             UINT8_C(182), UINT8_C(183), UINT8_C( 58), UINT8_C(245),
                             UINT8_C( 62), UINT8_C( 31), UINT8_C( 93), UINT8_C( 74),
                             UINT8_C(114), UINT8_C( 92), UINT8_C(199), UINT8_C( 53),
                             UINT8_C( 94), UINT8_C(185), UINT8_C(107), UINT8_C(124),
                             UINT8_C(160), UINT8_C(193), UINT8_C( 17), UINT8_C( 65),
                             UINT8_C(242), UINT8_C( 55), UINT8_C(163), UINT8_C(102),
                             UINT8_C( 59), UINT8_C(173), UINT8_C(244), UINT8_C(232),
                             UINT8_C(182), UINT8_C(139), UINT8_C(254), UINT8_C( 81),
                             UINT8_C(228), UINT8_C(175), UINT8_C(104), UINT8_C(167),
                             UINT8_C( 38), UINT8_C(114), UINT8_C(184), UINT8_C(118),
                             UINT8_C(167), UINT8_C( 58), UINT8_C(153), UINT8_C(103),
                             UINT8_C(204), UINT8_C(126), UINT8_C(111), UINT8_C( 63)),
      simde_x_mm512_set_epu8(UINT8_C(242), UINT8_C(255), UINT8_C( 89), UINT8_C(255),
                             UINT8_C(255), UINT8_C(179), UINT8_C(255), UINT8_C(255),
                             UINT8_C(255), UINT8_C(179), UINT8_C(255), UINT8_C(255),
                             UINT8_C(120), UINT8_C(228), UINT8_C(255), UINT8_C(188),
                             UINT8_C(255), UINT8_C(255), UINT8_C(153), UINT8_C(255),
                             UINT8_C(100), UINT8_C(222), UINT8_C( 96), UINT8_C(122),
                             UINT8_C(255), UINT8_C(143), UINT8_C(255), UINT8_C(129),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(125),
                             UINT8_C(255), UINT8_C(255), UINT8_C( 41), UINT8_C(255),
                             UINT8_C(255), UINT8_C(117), UINT8_C(250), UINT8_C(255),
                             UINT8_C(178), UINT8_C(255), UINT8_C(248), UINT8_C(255),
                             UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(153),
                             UINT8_C(255), UINT8_C(255), UINT8_C(143), UINT8_C(255),
                             UINT8_C(233), UINT8_C(255), UINT8_C(255), UINT8_C(255),
                             UINT8_C(235), UINT8_C(255), UINT8_C(214), UINT8_C(255),
                             UINT8_C(255), UINT8_C(224), UINT8_C(152), UINT8_C( 85)) }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde__m512i r = simde_mm512_adds_epu8(test_vec[i].a, test_vec[i].b);
    simde_assert_m512i_u8(r, ==, test_vec[i].r);
  }

  return 0;
}

static int
test_simde_mm512_mask_adds_epu8(SIMDE_MUNIT_TEST_ARGS) {
  const struct {
    simde__m512i src;
    simde__mmask64 k;
    simde__m512i a;
    simde__m512i b;
    simde__m512i r;
  } test_vec[8] = {
    { simde_x_mm512_set_epu8(UINT8_C(  92), UINT8_C( 116), UINT8_C( 178), UINT8_C( 237),
                             UINT8_C( 183), UINT8_C(  22), UINT8_C( 190), UINT8_C( 227),
                             UINT8_C(  55), UINT8_C(  78), UINT8_C( 211), UINT8_C( 137),
                             UINT8_C(  30), UINT8_C( 227), UINT8_C( 233), UINT8_C(  89),
                             UINT8_C(  15), UINT8_C( 119), UINT8_C( 168), UINT8_C( 109),
                             UINT8_C( 240), UINT8_C( 246), UINT8_C(   0), UINT8_C( 238),
                             UINT8_C(   1), UINT8_C( 116), UINT8_C(  62), UINT8_C( 183),
                             UINT8_C( 134), UINT8_C(   0), UINT8_C( 111), UINT8_C(  95),
                             UINT8_C( 236), UINT8_C(   3), UINT8_C( 122), UINT8_C( 135),
                             UINT8_C(  13), UINT8_C(  25), UINT8_C( 221), UINT8_C( 129),
                             UINT8_C(  82), UINT8_C(  90), UINT8_C(  53), UINT8_C( 123),
                             UINT8_C(  73), UINT8_C( 108), UINT8_C( 238), UINT8_C(  15),
                             UINT8_C(  81), UINT8_C( 229), UINT8_C( 102), UINT8_C( 118),
                             UINT8_C(  39), UINT8_C( 179), UINT8_C(  45), UINT8_C(  81),
                             UINT8_C( 239), UINT8_C( 228), UINT8_C(  67), UINT8_C( 138),
                             UINT8_C(  79), UINT8_C( 143), UINT8_C( 134), UINT8_C( 124)),
      UINT64_C(10224647434006242820),
      simde_x_mm512_set_epu8(UINT8_C(  68), UINT8_C( 148), UINT8_C( 135), UINT8_C( 141),
                             UINT8_C( 197), UINT8_C( 178), UINT8_C( 145), UINT8_C(  56),
                             UINT8_C(   9), UINT8_C( 135), UINT8_C( 120), UINT8_C( 220),
                             UINT8_C(  36), UINT8_C( 153), UINT8_C( 152), UINT8_C(  25),
                             UINT8_C( 145), UINT8_C( 193), UINT8_C( 221), UINT8_C( 136),
                             UINT8_C(  28), UINT8_C( 212), UINT8_C( 230), UINT8_C( 170),
                             UINT8_C( 243), UINT8_C(  53), UINT8_C( 168), UINT8_C( 149),
                             UINT8_C(  68), UINT8_C(  42), UINT8_C( 138), UINT8_C( 111),
                             UINT8_C(  54), UINT8_C( 198), UINT8_C( 243), UINT8_C(  27),
                             UINT8_C(  23), UINT8_C(  41), UINT8_C( 137), UINT8_C(  44),
                             UINT8_C(   7), UINT8_C( 136), UINT8_C(  32), UINT8_C( 213),
                             UINT8_C( 114), UINT8_C( 184), UINT8_C(  73), UINT8_C( 160),
                             UINT8_C(  96), UINT8_C( 110), UINT8_C( 175), UINT8_C( 180),
                             UINT8_C( 103), UINT8_C( 156), UINT8_C( 234), UINT8_C(  18),
                             UINT8_C( 115), UINT8_C(  54), UINT8_C( 216), UINT8_C( 125),
                             UINT8_C( 110), UINT8_C(  31), UINT8_C(  51), UINT8_C( 152)),
      simde_x_mm512_set_epu8(UINT8_C( 242), UINT8_C(  85), UINT8_C( 176), UINT8_C(  80),
                             UINT8_C(  48), UINT8_C(  93), UINT8_C(  79), UINT8_C( 127),
                             UINT8_C(  16), UINT8_C(  41), UINT8_C(  54), UINT8_C( 140),
                             UINT8_C(  17), UINT8_C(  42), UINT8_C( 170), UINT8_C(  38),
                             UINT8_C( 138), UINT8_C( 200), UINT8_C(  60), UINT8_C(  19),
                             UINT8_C( 156), UINT8_C( 149), UINT8_C( 105), UINT8_C( 180),
                             UINT8_C(  10), UINT8_C( 247), UINT8_C( 244), UINT8_C( 200),
                             UINT8_C( 185), UINT8_C(  96), UINT8_C(   6), UINT8_C(  24),
                             UINT8_C(  69), UINT8_C(  73), UINT8_C( 229), UINT8_C(   3),
                             UINT8_C( 161), UINT8_C(  50), UINT8_C( 189), UINT8_C( 217),
                             UINT8_C(  97), UINT8_C(  62), UINT8_C( 101), UINT8_C(  56),
                             UINT8_C( 177), UINT8_C(  83), UINT8_C( 157), UINT8_C( 200),
                             UINT8_C( 239), UINT8_C( 200), UINT8_C( 248), UINT8_C( 240),
                             UINT8_C(  84), UINT8_C( 161), UINT8_C( 183), UINT8_C(  54),
                             UINT8_C( 125), UINT8_C(  85), UINT8_C(  78), UINT8_C( 191),
                             UINT8_C(   4), UINT8_C( 113), UINT8_C( 240), UINT8_C( 203)),
      simde_x_mm512_set_epu8(UINT8_C( 255), UINT8_C( 116), UINT8_C( 178), UINT8_C( 237),
                             UINT8_C( 245), UINT8_C( 255), UINT8_C( 190), UINT8_C( 183),
                             UINT8_C(  25), UINT8_C( 176), UINT8_C( 174), UINT8_C( 137),
                             UINT8_C(  30), UINT8_C( 195), UINT8_C( 233), UINT8_C(  63),
                             UINT8_C(  15), UINT8_C( 119), UINT8_C( 255), UINT8_C( 155),
                             UINT8_C( 184), UINT8_C( 255), UINT8_C( 255), UINT8_C( 238),
                             UINT8_C( 253), UINT8_C( 116), UINT8_C( 255), UINT8_C( 183),
                             UINT8_C( 253), UINT8_C(   0), UINT8_C( 144), UINT8_C( 135),
                             UINT8_C( 236), UINT8_C(   3), UINT8_C( 255), UINT8_C(  30),
                             UINT8_C(  13), UINT8_C(  25), UINT8_C( 221), UINT8_C( 255),
                             UINT8_C( 104), UINT8_C(  90), UINT8_C(  53), UINT8_C( 123),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 238), UINT8_C( 255),
                             UINT8_C(  81), UINT8_C( 229), UINT8_C( 255), UINT8_C( 118),
                             UINT8_C(  39), UINT8_C( 255), UINT8_C( 255), UINT8_C(  81),
                             UINT8_C( 239), UINT8_C( 228), UINT8_C(  67), UINT8_C( 138),
                             UINT8_C(  79), UINT8_C( 144), UINT8_C( 134), UINT8_C( 124)) },
    { simde_x_mm512_set_epu8(UINT8_C( 133), UINT8_C( 156), UINT8_C( 217), UINT8_C( 212),
                             UINT8_C(  22), UINT8_C( 112), UINT8_C(  16), UINT8_C(  15),
                             UINT8_C( 152), UINT8_C( 154), UINT8_C( 102), UINT8_C( 161),
                             UINT8_C(  69), UINT8_C(  13), UINT8_C( 235), UINT8_C(  45),
                             UINT8_C(  62), UINT8_C( 136), UINT8_C( 145), UINT8_C(  32),
                             UINT8_C( 149), UINT8_C( 226), UINT8_C(  99), UINT8_C( 192),
                             UINT8_C(   8), UINT8_C( 214), UINT8_C(  81), UINT8_C( 222),
                             UINT8_C( 210), UINT8_C(  26), UINT8_C(  31), UINT8_C( 254),
                             UINT8_C(  68), UINT8_C( 249), UINT8_C( 185), UINT8_C(  46),
                             UINT8_C( 235), UINT8_C( 183), UINT8_C(  21), UINT8_C(  83),
                             UINT8_C( 148), UINT8_C( 159), UINT8_C( 187), UINT8_C(  73),
                             UINT8_C(  57), UINT8_C( 219), UINT8_C(  21), UINT8_C(  82),
                             UINT8_C( 137), UINT8_C( 130), UINT8_C( 126), UINT8_C(  91),
                             UINT8_C( 115), UINT8_C(  31), UINT8_C( 177), UINT8_C(  28),
                             UINT8_C( 150), UINT8_C( 238), UINT8_C(  65), UINT8_C( 152),
                             UINT8_C(  81), UINT8_C(  38), UINT8_C( 172), UINT8_C( 254)),
      UINT64_C( 4597426592773770833),
      simde_x_mm512_set_epu8(UINT8_C(  74), UINT8_C(  72), UINT8_C( 252), UINT8_C(  28),
                             UINT8_C( 141), UINT8_C(  93), UINT8_C( 102), UINT8_C(  44),
                             UINT8_C( 153), UINT8_C( 227), UINT8_C( 206), UINT8_C(  48),
                             UINT8_C( 160), UINT8_C( 206), UINT8_C(  46), UINT8_C( 191),
                             UINT8_C(   4), UINT8_C(  43), UINT8_C( 181), UINT8_C(  97),
                             UINT8_C( 230), UINT8_C( 153), UINT8_C(  71), UINT8_C( 149),
                             UINT8_C(  91), UINT8_C(  45), UINT8_C( 245), UINT8_C(  47),
                             UINT8_C(  29), UINT8_C(  25), UINT8_C(  26), UINT8_C( 247),
                             UINT8_C(  10), UINT8_C(  36), UINT8_C( 177), UINT8_C( 203),
                             UINT8_C(  41), UINT8_C(   1), UINT8_C( 233), UINT8_C( 193),
                             UINT8_C( 129), UINT8_C(  68), UINT8_C(  48), UINT8_C(  36),
                             UINT8_C(  89), UINT8_C( 144), UINT8_C( 225), UINT8_C( 120),
                             UINT8_C(  35), UINT8_C(  62), UINT8_C( 235), UINT8_C( 142),
                             UINT8_C( 152), UINT8_C(  57), UINT8_C(  42), UINT8_C( 145),
                             UINT8_C(  94), UINT8_C( 193), UINT8_C( 247), UINT8_C(  64),
                             UINT8_C( 191), UINT8_C( 254), UINT8_C( 110), UINT8_C( 248)),
      simde_x_mm512_set_epu8(UINT8_C(  44), UINT8_C( 164), UINT8_C( 225), UINT8_C(  26),
                             UINT8_C( 157), UINT8_C( 203), UINT8_C( 117), UINT8_C(  18),
                             UINT8_C( 193), UINT8_C(  45), UINT8_C(  12), UINT8_C(  24),
                             UINT8_C( 148), UINT8_C(  18), UINT8_C( 196), UINT8_C(  28),
                             UINT8_C(  50), UINT8_C( 245), UINT8_C( 188), UINT8_C( 225),
                             UINT8_C( 105), UINT8_C( 150), UINT8_C(  98), UINT8_C(  51),
                             UINT8_C(  58), UINT8_C( 103), UINT8_C( 111), UINT8_C( 129),
                             UINT8_C(  68), UINT8_C( 200), UINT8_C( 124), UINT8_C( 137),
                             UINT8_C(  74), UINT8_C( 194), UINT8_C( 140), UINT8_C(  37),
                             UINT8_C( 244), UINT8_C( 114), UINT8_C(   0), UINT8_C(  61),
                             UINT8_C( 103), UINT8_C( 252), UINT8_C( 151), UINT8_C( 188),
                             UINT8_C(  39), UINT8_C( 156), UINT8_C( 163), UINT8_C(  11),
                             UINT8_C( 176), UINT8_C( 237), UINT8_C( 234), UINT8_C( 217),
                             UINT8_C( 127), UINT8_C( 218), UINT8_C( 131), UINT8_C( 145),
                             UINT8_C(  84), UINT8_C( 160), UINT8_C(  87), UINT8_C( 234),
                             UINT8_C( 251), UINT8_C( 253), UINT8_C( 129), UINT8_C(  41)),
      simde_x_mm512_set_epu8(UINT8_C( 133), UINT8_C( 156), UINT8_C( 255), UINT8_C(  54),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 219), UINT8_C(  62),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 102), UINT8_C( 161),
                             UINT8_C( 255), UINT8_C( 224), UINT8_C( 235), UINT8_C( 219),
                             UINT8_C(  62), UINT8_C( 255), UINT8_C( 145), UINT8_C( 255),
                             UINT8_C( 149), UINT8_C( 255), UINT8_C( 169), UINT8_C( 200),
                             UINT8_C(   8), UINT8_C( 214), UINT8_C( 255), UINT8_C( 222),
                             UINT8_C( 210), UINT8_C(  26), UINT8_C(  31), UINT8_C( 254),
                             UINT8_C(  84), UINT8_C( 249), UINT8_C( 255), UINT8_C( 240),
                             UINT8_C( 255), UINT8_C( 115), UINT8_C( 233), UINT8_C( 254),
                             UINT8_C( 148), UINT8_C( 159), UINT8_C( 199), UINT8_C( 224),
                             UINT8_C(  57), UINT8_C( 255), UINT8_C( 255), UINT8_C( 131),
                             UINT8_C( 137), UINT8_C( 130), UINT8_C( 126), UINT8_C(  91),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 173), UINT8_C(  28),
                             UINT8_C( 150), UINT8_C( 255), UINT8_C(  65), UINT8_C( 255),
                             UINT8_C(  81), UINT8_C(  38), UINT8_C( 172), UINT8_C( 255)) },
    { simde_x_mm512_set_epu8(UINT8_C( 226), UINT8_C( 219), UINT8_C(  51), UINT8_C( 220),
                             UINT8_C(   8), UINT8_C(  52), UINT8_C(  97), UINT8_C( 123),
                             UINT8_C( 207), UINT8_C( 132), UINT8_C(  95), UINT8_C( 173),
                             UINT8_C(  70), UINT8_C( 206), UINT8_C( 195), UINT8_C(  25),
                             UINT8_C( 159), UINT8_C(  28), UINT8_C( 198), UINT8_C(  11),
                             UINT8_C( 242), UINT8_C( 126), UINT8_C(  81), UINT8_C(  45),
                             UINT8_C( 233), UINT8_C( 120), UINT8_C( 173), UINT8_C( 240),
                             UINT8_C(   7), UINT8_C(  51), UINT8_C( 199), UINT8_C( 206),
                             UINT8_C( 235), UINT8_C(  98), UINT8_C(  88), UINT8_C(   0),
                             UINT8_C( 190), UINT8_C(   3), UINT8_C( 124), UINT8_C( 143),
                             UINT8_C(  50), UINT8_C(  88), UINT8_C( 171), UINT8_C( 163),
                             UINT8_C( 212), UINT8_C( 243), UINT8_C( 162), UINT8_C(  17),
                             UINT8_C( 254), UINT8_C(  79), UINT8_C( 140), UINT8_C(  43),
                             UINT8_C( 179), UINT8_C( 131), UINT8_C( 233), UINT8_C( 136),
                             UINT8_C(  96), UINT8_C( 192), UINT8_C( 233), UINT8_C( 210),
                             UINT8_C( 227), UINT8_C( 185), UINT8_C(  71), UINT8_C(  90)),
      UINT64_C(12627002542648829104),
      simde_x_mm512_set_epu8(UINT8_C(  56), UINT8_C( 211), UINT8_C( 148), UINT8_C( 237),
                             UINT8_C( 132), UINT8_C( 229), UINT8_C(  22), UINT8_C( 126),
                             UINT8_C( 150), UINT8_C( 188), UINT8_C( 196), UINT8_C(   8),
                             UINT8_C(  60), UINT8_C(  93), UINT8_C( 223), UINT8_C( 229),
                             UINT8_C( 249), UINT8_C(  27), UINT8_C( 134), UINT8_C( 218),
                             UINT8_C(  23), UINT8_C(   6), UINT8_C(  45), UINT8_C( 235),
                             UINT8_C( 233), UINT8_C( 155), UINT8_C( 116), UINT8_C( 127),
                             UINT8_C(  96), UINT8_C(  40), UINT8_C( 159), UINT8_C(  40),
                             UINT8_C(  86), UINT8_C( 212), UINT8_C(  70), UINT8_C( 185),
                             UINT8_C(  62), UINT8_C( 235), UINT8_C(  66), UINT8_C(  68),
                             UINT8_C( 169), UINT8_C( 195), UINT8_C(  48), UINT8_C( 186),
                             UINT8_C(  18), UINT8_C( 178), UINT8_C( 158), UINT8_C( 117),
                             UINT8_C(  74), UINT8_C(  32), UINT8_C(  93), UINT8_C( 125),
                             UINT8_C( 209), UINT8_C( 196), UINT8_C( 170), UINT8_C( 117),
                             UINT8_C( 122), UINT8_C( 202), UINT8_C(  50), UINT8_C( 123),
                             UINT8_C( 225), UINT8_C( 182), UINT8_C( 192), UINT8_C(  54)),
      simde_x_mm512_set_epu8(UINT8_C( 115), UINT8_C(  51), UINT8_C( 165), UINT8_C(  56),
                             UINT8_C(  64), UINT8_C( 217), UINT8_C( 137), UINT8_C( 228),
                             UINT8_C( 202), UINT8_C(  28), UINT8_C(  54), UINT8_C( 248),
                             UINT8_C( 202), UINT8_C( 128), UINT8_C( 228), UINT8_C( 185),
                             UINT8_C( 107), UINT8_C( 190), UINT8_C( 142), UINT8_C( 168),
                             UINT8_C(  34), UINT8_C( 173), UINT8_C( 235), UINT8_C( 192),
                             UINT8_C( 121), UINT8_C( 236), UINT8_C( 167), UINT8_C( 162),
                             UINT8_C( 112), UINT8_C( 229), UINT8_C(  81), UINT8_C( 202),
                             UINT8_C( 192), UINT8_C( 142), UINT8_C(  48), UINT8_C( 167),
                             UINT8_C( 195), UINT8_C(  26), UINT8_C(  43), UINT8_C(  29),
                             UINT8_C(   0), UINT8_C(  64), UINT8_C( 123), UINT8_C( 189),
                             UINT8_C(  15), UINT8_C( 120), UINT8_C(  36), UINT8_C(  40),
                             UINT8_C( 106), UINT8_C( 138), UINT8_C( 148), UINT8_C( 198),
                             UINT8_C(  26), UINT8_C( 145), UINT8_C(  63), UINT8_C( 158),
                             UINT8_C( 243), UINT8_C( 244), UINT8_C( 132), UINT8_C(  96),
                             UINT8_C( 243), UINT8_C( 158), UINT8_C(  99), UINT8_C( 243)),
      simde_x_mm512_set_epu8(UINT8_C( 171), UINT8_C( 219), UINT8_C( 255), UINT8_C( 220),
                             UINT8_C( 196), UINT8_C( 255), UINT8_C( 159), UINT8_C( 255),
                             UINT8_C( 207), UINT8_C( 132), UINT8_C( 250), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C( 221), UINT8_C( 195), UINT8_C(  25),
                             UINT8_C( 159), UINT8_C(  28), UINT8_C( 198), UINT8_C( 255),
                             UINT8_C(  57), UINT8_C( 179), UINT8_C( 255), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C( 240),
                             UINT8_C( 208), UINT8_C(  51), UINT8_C( 199), UINT8_C( 242),
                             UINT8_C( 235), UINT8_C( 255), UINT8_C( 118), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 124), UINT8_C( 143),
                             UINT8_C( 169), UINT8_C(  88), UINT8_C( 171), UINT8_C( 163),
                             UINT8_C(  33), UINT8_C( 243), UINT8_C( 162), UINT8_C( 157),
                             UINT8_C( 180), UINT8_C(  79), UINT8_C( 241), UINT8_C(  43),
                             UINT8_C( 179), UINT8_C( 255), UINT8_C( 233), UINT8_C( 136),
                             UINT8_C( 255), UINT8_C( 192), UINT8_C( 182), UINT8_C( 219),
                             UINT8_C( 227), UINT8_C( 185), UINT8_C(  71), UINT8_C(  90)) },
    { simde_x_mm512_set_epu8(UINT8_C(  72), UINT8_C(  45), UINT8_C( 120), UINT8_C( 251),
                             UINT8_C( 147), UINT8_C(  62), UINT8_C(  17), UINT8_C(  31),
                             UINT8_C( 226), UINT8_C( 198), UINT8_C(  56), UINT8_C(  21),
                             UINT8_C(  72), UINT8_C( 182), UINT8_C( 216), UINT8_C( 120),
                             UINT8_C(  95), UINT8_C( 108), UINT8_C(  32), UINT8_C(  64),
                             UINT8_C( 128), UINT8_C( 102), UINT8_C( 235), UINT8_C(  28),
                             UINT8_C( 105), UINT8_C(  52), UINT8_C(  85), UINT8_C( 152),
                             UINT8_C(  57), UINT8_C( 225), UINT8_C( 218), UINT8_C( 132),
                             UINT8_C( 149), UINT8_C( 254), UINT8_C(  55), UINT8_C(  46),
                             UINT8_C( 185), UINT8_C(  77), UINT8_C(  18), UINT8_C(  70),
                             UINT8_C(  89), UINT8_C( 125), UINT8_C( 214), UINT8_C( 131),
                             UINT8_C( 121), UINT8_C( 245), UINT8_C( 187), UINT8_C( 197),
                             UINT8_C( 203), UINT8_C(  34), UINT8_C(   9), UINT8_C(  64),
                             UINT8_C( 195), UINT8_C( 231), UINT8_C( 141), UINT8_C( 100),
                             UINT8_C(  65), UINT8_C(   8), UINT8_C(  69), UINT8_C( 248),
                             UINT8_C( 241), UINT8_C( 205), UINT8_C(   1), UINT8_C(  90)),
      UINT64_C(14515151237088493607),
      simde_x_mm512_set_epu8(UINT8_C( 230), UINT8_C( 247), UINT8_C(  66), UINT8_C(   1),
                             UINT8_C( 243), UINT8_C(  60), UINT8_C( 137), UINT8_C( 173),
                             UINT8_C( 134), UINT8_C( 192), UINT8_C( 173), UINT8_C( 182),
                             UINT8_C( 119), UINT8_C( 248), UINT8_C(  12), UINT8_C( 113),
                             UINT8_C( 244), UINT8_C( 172), UINT8_C(   6), UINT8_C(  69),
                             UINT8_C(   2), UINT8_C( 181), UINT8_C( 222), UINT8_C( 130),
                             UINT8_C(   3), UINT8_C( 128), UINT8_C( 247), UINT8_C(  24),
                             UINT8_C(  11), UINT8_C( 162), UINT8_C( 224), UINT8_C( 110),
                             UINT8_C(  33), UINT8_C( 232), UINT8_C( 125), UINT8_C(  35),
                             UINT8_C( 153), UINT8_C( 208), UINT8_C( 234), UINT8_C(  38),
                             UINT8_C( 175), UINT8_C(   9), UINT8_C( 245), UINT8_C( 132),
                             UINT8_C(  71), UINT8_C(  31), UINT8_C( 214), UINT8_C(  93),
                             UINT8_C(  67), UINT8_C(  45), UINT8_C(  51), UINT8_C( 164),
                             UINT8_C( 126), UINT8_C( 108), UINT8_C( 133), UINT8_C( 185),
                             UINT8_C( 113), UINT8_C(  32), UINT8_C(  71), UINT8_C(  55),
                             UINT8_C( 230), UINT8_C(  82), UINT8_C( 175), UINT8_C( 236)),
      simde_x_mm512_set_epu8(UINT8_C( 131), UINT8_C( 121), UINT8_C( 128), UINT8_C( 103),
                             UINT8_C(   0), UINT8_C( 101), UINT8_C( 215), UINT8_C(  89),
                             UINT8_C( 173), UINT8_C( 191), UINT8_C(   9), UINT8_C( 249),
                             UINT8_C( 193), UINT8_C(  13), UINT8_C( 105), UINT8_C(  92),
                             UINT8_C( 238), UINT8_C( 235), UINT8_C( 154), UINT8_C( 142),
                             UINT8_C(  74), UINT8_C( 121), UINT8_C( 211), UINT8_C(  52),
                             UINT8_C( 193), UINT8_C( 163), UINT8_C(  98), UINT8_C( 106),
                             UINT8_C( 147), UINT8_C( 209), UINT8_C(  37), UINT8_C(  70),
                             UINT8_C( 100), UINT8_C( 121), UINT8_C(  18), UINT8_C(  28),
                             UINT8_C( 139), UINT8_C( 107), UINT8_C(   3), UINT8_C( 194),
                             UINT8_C(  42), UINT8_C(  72), UINT8_C(  91), UINT8_C(  86),
                             UINT8_C( 184), UINT8_C(   9), UINT8_C( 176), UINT8_C( 118),
                             UINT8_C( 122), UINT8_C( 148), UINT8_C( 186), UINT8_C( 193),
                             UINT8_C(  56), UINT8_C(  71), UINT8_C( 242), UINT8_C(  49),
                             UINT8_C( 183), UINT8_C(  53), UINT8_C( 227), UINT8_C(   3),
                             UINT8_C( 183), UINT8_C(  43), UINT8_C( 234), UINT8_C(  85)),
      simde_x_mm512_set_epu8(UINT8_C( 255), UINT8_C( 255), UINT8_C( 120), UINT8_C( 251),
                             UINT8_C( 243), UINT8_C(  62), UINT8_C(  17), UINT8_C( 255),
                             UINT8_C( 226), UINT8_C( 255), UINT8_C( 182), UINT8_C( 255),
                             UINT8_C(  72), UINT8_C( 182), UINT8_C( 216), UINT8_C( 120),
                             UINT8_C(  95), UINT8_C( 108), UINT8_C( 160), UINT8_C(  64),
                             UINT8_C(  76), UINT8_C( 255), UINT8_C( 235), UINT8_C( 182),
                             UINT8_C( 105), UINT8_C(  52), UINT8_C( 255), UINT8_C( 152),
                             UINT8_C(  57), UINT8_C( 255), UINT8_C( 218), UINT8_C( 180),
                             UINT8_C( 149), UINT8_C( 255), UINT8_C(  55), UINT8_C(  46),
                             UINT8_C( 185), UINT8_C(  77), UINT8_C( 237), UINT8_C( 232),
                             UINT8_C( 217), UINT8_C( 125), UINT8_C( 255), UINT8_C( 218),
                             UINT8_C( 255), UINT8_C( 245), UINT8_C( 255), UINT8_C( 211),
                             UINT8_C( 203), UINT8_C( 193), UINT8_C(   9), UINT8_C(  64),
                             UINT8_C( 195), UINT8_C( 231), UINT8_C( 141), UINT8_C( 100),
                             UINT8_C(  65), UINT8_C(   8), UINT8_C( 255), UINT8_C( 248),
                             UINT8_C( 241), UINT8_C( 125), UINT8_C( 255), UINT8_C( 255)) },
    { simde_x_mm512_set_epu8(UINT8_C( 209), UINT8_C(  84), UINT8_C( 130), UINT8_C( 192),
                             UINT8_C(  14), UINT8_C(  11), UINT8_C(  37), UINT8_C( 233),
                             UINT8_C(  67), UINT8_C( 124), UINT8_C(  58), UINT8_C( 162),
                             UINT8_C(  30), UINT8_C( 223), UINT8_C(  70), UINT8_C( 232),
                             UINT8_C(  38), UINT8_C( 159), UINT8_C( 200), UINT8_C( 196),
                             UINT8_C( 197), UINT8_C(  65), UINT8_C( 182), UINT8_C(  45),
                             UINT8_C( 245), UINT8_C(  55), UINT8_C( 174), UINT8_C(  12),
                             UINT8_C( 106), UINT8_C(  22), UINT8_C( 132), UINT8_C( 252),
                             UINT8_C(   2), UINT8_C( 175), UINT8_C(  14), UINT8_C(  90),
                             UINT8_C( 156), UINT8_C( 134), UINT8_C( 221), UINT8_C(  81),
                             UINT8_C( 242), UINT8_C( 214), UINT8_C( 125), UINT8_C( 131),
                             UINT8_C( 199), UINT8_C(  90), UINT8_C( 247), UINT8_C(  63),
                             UINT8_C(  53), UINT8_C(  77), UINT8_C(  63), UINT8_C( 172),
                             UINT8_C(  27), UINT8_C(  22), UINT8_C(   3), UINT8_C( 219),
                             UINT8_C(  65), UINT8_C( 118), UINT8_C( 130), UINT8_C(  97),
                             UINT8_C( 109), UINT8_C(   7), UINT8_C( 142), UINT8_C( 181)),
      UINT64_C( 8707623543556880126),
      simde_x_mm512_set_epu8(UINT8_C(  84), UINT8_C( 185), UINT8_C(   8), UINT8_C(  12),
                             UINT8_C( 245), UINT8_C( 180), UINT8_C(  62), UINT8_C(  93),
                             UINT8_C( 181), UINT8_C( 179), UINT8_C( 172), UINT8_C( 148),
                             UINT8_C( 221), UINT8_C(  14), UINT8_C( 196), UINT8_C(  18),
                             UINT8_C(  23), UINT8_C( 196), UINT8_C( 193), UINT8_C( 142),
                             UINT8_C( 201), UINT8_C(  75), UINT8_C( 157), UINT8_C( 201),
                             UINT8_C(  58), UINT8_C(  76), UINT8_C( 154), UINT8_C( 138),
                             UINT8_C( 226), UINT8_C(  39), UINT8_C( 119), UINT8_C(  85),
                             UINT8_C( 248), UINT8_C( 184), UINT8_C( 196), UINT8_C( 162),
                             UINT8_C( 144), UINT8_C( 119), UINT8_C( 124), UINT8_C(  76),
                             UINT8_C( 214), UINT8_C( 132), UINT8_C(  54), UINT8_C(  74),
                             UINT8_C( 164), UINT8_C(  99), UINT8_C(  79), UINT8_C( 253),
                             UINT8_C(  61), UINT8_C( 167), UINT8_C(  84), UINT8_C( 162),
                             UINT8_C(  31), UINT8_C( 140), UINT8_C( 189), UINT8_C( 154),
                             UINT8_C( 184), UINT8_C( 165), UINT8_C( 151), UINT8_C( 148),
                             UINT8_C( 212), UINT8_C(  74), UINT8_C( 228), UINT8_C( 124)),
      simde_x_mm512_set_epu8(UINT8_C(   1), UINT8_C(  75), UINT8_C(  21), UINT8_C( 220),
                             UINT8_C( 130), UINT8_C( 122), UINT8_C(  71), UINT8_C(  76),
                             UINT8_C(  28), UINT8_C( 200), UINT8_C(  32), UINT8_C( 101),
                             UINT8_C( 149), UINT8_C( 145), UINT8_C( 168), UINT8_C( 237),
                             UINT8_C( 179), UINT8_C(  19), UINT8_C( 235), UINT8_C( 145),
                             UINT8_C( 188), UINT8_C(  82), UINT8_C( 138), UINT8_C( 180),
                             UINT8_C(  47), UINT8_C( 127), UINT8_C(  62), UINT8_C( 240),
                             UINT8_C(  10), UINT8_C( 242), UINT8_C( 156), UINT8_C(  86),
                             UINT8_C(  29), UINT8_C( 107), UINT8_C(  56), UINT8_C(  21),
                             UINT8_C(  24), UINT8_C(  68), UINT8_C( 160), UINT8_C(  64),
                             UINT8_C(  48), UINT8_C(  13), UINT8_C( 173), UINT8_C(   4),
                             UINT8_C( 253), UINT8_C( 192), UINT8_C(  17), UINT8_C( 141),
                             UINT8_C(  21), UINT8_C( 108), UINT8_C( 125), UINT8_C( 196),
                             UINT8_C( 184), UINT8_C(  74), UINT8_C( 251), UINT8_C( 198),
                             UINT8_C( 215), UINT8_C(  22), UINT8_C( 141), UINT8_C( 102),
                             UINT8_C(  59), UINT8_C( 176), UINT8_C( 241), UINT8_C( 193)),
      simde_x_mm512_set_epu8(UINT8_C( 209), UINT8_C( 255), UINT8_C(  29), UINT8_C( 232),
                             UINT8_C( 255), UINT8_C(  11), UINT8_C(  37), UINT8_C( 233),
                             UINT8_C( 209), UINT8_C( 255), UINT8_C(  58), UINT8_C( 249),
                             UINT8_C(  30), UINT8_C( 159), UINT8_C( 255), UINT8_C( 255),
                             UINT8_C( 202), UINT8_C( 159), UINT8_C( 255), UINT8_C( 255),
                             UINT8_C( 197), UINT8_C(  65), UINT8_C( 182), UINT8_C( 255),
                             UINT8_C( 245), UINT8_C( 203), UINT8_C( 216), UINT8_C( 255),
                             UINT8_C( 236), UINT8_C(  22), UINT8_C( 255), UINT8_C( 252),
                             UINT8_C(   2), UINT8_C( 255), UINT8_C(  14), UINT8_C( 183),
                             UINT8_C( 156), UINT8_C( 187), UINT8_C( 255), UINT8_C( 140),
                             UINT8_C( 255), UINT8_C( 214), UINT8_C( 125), UINT8_C( 131),
                             UINT8_C( 255), UINT8_C(  90), UINT8_C( 247), UINT8_C( 255),
                             UINT8_C(  53), UINT8_C(  77), UINT8_C( 209), UINT8_C( 255),
                             UINT8_C(  27), UINT8_C( 214), UINT8_C( 255), UINT8_C( 219),
                             UINT8_C( 255), UINT8_C( 187), UINT8_C( 255), UINT8_C( 250),
                             UINT8_C( 255), UINT8_C( 250), UINT8_C( 255), UINT8_C( 181)) },
    { simde_x_mm512_set_epu8(UINT8_C( 192), UINT8_C( 203), UINT8_C( 214), UINT8_C( 126),
                             UINT8_C(  67), UINT8_C(  50), UINT8_C( 238), UINT8_C(  76),
                             UINT8_C( 237), UINT8_C( 123), UINT8_C( 169), UINT8_C( 106),
                             UINT8_C( 182), UINT8_C(  44), UINT8_C( 117), UINT8_C( 103),
                             UINT8_C(  81), UINT8_C( 122), UINT8_C(  56), UINT8_C( 246),
                             UINT8_C(  67), UINT8_C(  79), UINT8_C(  83), UINT8_C( 218),
                             UINT8_C( 243), UINT8_C(  43), UINT8_C(  27), UINT8_C( 159),
                             UINT8_C( 102), UINT8_C( 126), UINT8_C(  38), UINT8_C( 194),
                             UINT8_C( 232), UINT8_C( 117), UINT8_C( 218), UINT8_C( 163),
                             UINT8_C( 198), UINT8_C( 132), UINT8_C( 181), UINT8_C(  10),
                             UINT8_C(  18), UINT8_C( 182), UINT8_C(  14), UINT8_C(  36),
                             UINT8_C( 249), UINT8_C( 113), UINT8_C(  40), UINT8_C(  48),
                             UINT8_C( 149), UINT8_C( 222), UINT8_C( 181), UINT8_C(  85),
                             UINT8_C( 221), UINT8_C( 140), UINT8_C(  65), UINT8_C( 235),
                             UINT8_C(  15), UINT8_C(   3), UINT8_C(  45), UINT8_C(  21),
                             UINT8_C(  72), UINT8_C(  93), UINT8_C( 108), UINT8_C( 125)),
      UINT64_C(12576710173448868104),
      simde_x_mm512_set_epu8(UINT8_C(  90), UINT8_C( 218), UINT8_C( 158), UINT8_C( 186),
                             UINT8_C( 148), UINT8_C(  20), UINT8_C(  43), UINT8_C( 128),
                             UINT8_C(  77), UINT8_C( 108), UINT8_C(  53), UINT8_C(  82),
                             UINT8_C( 206), UINT8_C(  52), UINT8_C(  56), UINT8_C(  58),
                             UINT8_C( 136), UINT8_C( 213), UINT8_C( 114), UINT8_C(  93),
                             UINT8_C( 212), UINT8_C( 241), UINT8_C(  38), UINT8_C( 239),
                             UINT8_C( 146), UINT8_C( 133), UINT8_C( 217), UINT8_C( 114),
                             UINT8_C(  51), UINT8_C( 141), UINT8_C( 182), UINT8_C(  43),
                             UINT8_C(  41), UINT8_C( 220), UINT8_C(  19), UINT8_C(  69),
                             UINT8_C(  60), UINT8_C( 203), UINT8_C( 112), UINT8_C( 108),
                             UINT8_C(   8), UINT8_C(  46), UINT8_C( 221), UINT8_C(  26),
                             UINT8_C(  11), UINT8_C(  42), UINT8_C(  47), UINT8_C(  59),
                             UINT8_C( 199), UINT8_C(  94), UINT8_C( 131), UINT8_C( 132),
                             UINT8_C(  36), UINT8_C(  57), UINT8_C(  68), UINT8_C( 204),
                             UINT8_C(  39), UINT8_C(  50), UINT8_C( 208), UINT8_C(  94),
                             UINT8_C(  53), UINT8_C(  11), UINT8_C(  29), UINT8_C(  65)),
      simde_x_mm512_set_epu8(UINT8_C( 149), UINT8_C( 120), UINT8_C( 198), UINT8_C( 107),
                             UINT8_C( 224), UINT8_C( 224), UINT8_C(  88), UINT8_C( 213),
                             UINT8_C(  31), UINT8_C( 224), UINT8_C( 192), UINT8_C(  27),
                             UINT8_C(  82), UINT8_C( 166), UINT8_C( 202), UINT8_C( 172),
                             UINT8_C( 226), UINT8_C(  63), UINT8_C(  24), UINT8_C(  81),
                             UINT8_C( 248), UINT8_C(   9), UINT8_C( 221), UINT8_C( 155),
                             UINT8_C(  83), UINT8_C( 107), UINT8_C( 209), UINT8_C( 200),
                             UINT8_C(  57), UINT8_C( 168), UINT8_C( 141), UINT8_C( 236),
                             UINT8_C(  58), UINT8_C(  75), UINT8_C(  56), UINT8_C(  93),
                             UINT8_C(  49), UINT8_C(  43), UINT8_C( 108), UINT8_C( 118),
                             UINT8_C( 177), UINT8_C( 112), UINT8_C(  44), UINT8_C( 144),
                             UINT8_C( 204), UINT8_C(  10), UINT8_C(  28), UINT8_C( 170),
                             UINT8_C(  65), UINT8_C(  62), UINT8_C(  86), UINT8_C( 149),
                             UINT8_C(  24), UINT8_C( 201), UINT8_C(  54), UINT8_C( 146),
                             UINT8_C( 223), UINT8_C( 110), UINT8_C( 140), UINT8_C( 217),
                             UINT8_C(  39), UINT8_C( 144), UINT8_C(  64), UINT8_C(  43)),
      simde_x_mm512_set_epu8(UINT8_C( 239), UINT8_C( 203), UINT8_C( 255), UINT8_C( 126),
                             UINT8_C( 255), UINT8_C( 244), UINT8_C( 131), UINT8_C(  76),
                             UINT8_C( 108), UINT8_C( 123), UINT8_C( 169), UINT8_C( 106),
                             UINT8_C( 255), UINT8_C(  44), UINT8_C( 117), UINT8_C( 230),
                             UINT8_C(  81), UINT8_C( 255), UINT8_C( 138), UINT8_C( 174),
                             UINT8_C(  67), UINT8_C(  79), UINT8_C( 255), UINT8_C( 255),
                             UINT8_C( 243), UINT8_C( 240), UINT8_C(  27), UINT8_C( 159),
                             UINT8_C( 102), UINT8_C( 255), UINT8_C(  38), UINT8_C( 194),
                             UINT8_C(  99), UINT8_C( 117), UINT8_C(  75), UINT8_C( 162),
                             UINT8_C( 109), UINT8_C( 132), UINT8_C( 220), UINT8_C( 226),
                             UINT8_C(  18), UINT8_C( 158), UINT8_C( 255), UINT8_C( 170),
                             UINT8_C( 249), UINT8_C(  52), UINT8_C(  75), UINT8_C(  48),
                             UINT8_C( 149), UINT8_C( 222), UINT8_C( 181), UINT8_C( 255),
                             UINT8_C( 221), UINT8_C( 140), UINT8_C(  65), UINT8_C( 255),
                             UINT8_C(  15), UINT8_C(   3), UINT8_C(  45), UINT8_C(  21),
                             UINT8_C(  92), UINT8_C(  93), UINT8_C( 108), UINT8_C( 125)) },
    { simde_x_mm512_set_epu8(UINT8_C( 153), UINT8_C( 132), UINT8_C(  13), UINT8_C( 176),
                             UINT8_C( 224), UINT8_C( 123), UINT8_C( 115), UINT8_C( 207),
                             UINT8_C( 113), UINT8_C( 205), UINT8_C( 119), UINT8_C( 189),
                             UINT8_C( 235), UINT8_C(  19), UINT8_C( 244), UINT8_C(  29),
                             UINT8_C(  91), UINT8_C( 192), UINT8_C(  88), UINT8_C( 151),
                             UINT8_C(  24), UINT8_C(  31), UINT8_C(  77), UINT8_C(  92),
                             UINT8_C( 171), UINT8_C(  48), UINT8_C( 143), UINT8_C( 142),
                             UINT8_C(  16), UINT8_C(  18), UINT8_C( 212), UINT8_C( 190),
                             UINT8_C(  25), UINT8_C( 151), UINT8_C( 156), UINT8_C( 165),
                             UINT8_C(  26), UINT8_C( 133), UINT8_C( 223), UINT8_C( 219),
                             UINT8_C(  63), UINT8_C(  13), UINT8_C( 132), UINT8_C(  41),
                             UINT8_C( 152), UINT8_C( 197), UINT8_C( 254), UINT8_C( 202),
                             UINT8_C(  73), UINT8_C(   3), UINT8_C( 238), UINT8_C(  10),
                             UINT8_C(  19), UINT8_C(  58), UINT8_C( 244), UINT8_C( 181),
                             UINT8_C( 168), UINT8_C(  59), UINT8_C( 104), UINT8_C( 216),
                             UINT8_C( 174), UINT8_C(  42), UINT8_C( 183), UINT8_C( 162)),
      UINT64_C( 2633789449456316803),
      simde_x_mm512_set_epu8(UINT8_C( 118), UINT8_C(  44), UINT8_C( 242), UINT8_C(  84),
                             UINT8_C( 187), UINT8_C( 208), UINT8_C(  40), UINT8_C(  86),
                             UINT8_C( 255), UINT8_C( 121), UINT8_C( 216), UINT8_C(  44),
                             UINT8_C( 255), UINT8_C(  38), UINT8_C( 212), UINT8_C(  38),
                             UINT8_C(  93), UINT8_C( 149), UINT8_C( 252), UINT8_C( 195),
                             UINT8_C( 204), UINT8_C(  22), UINT8_C( 202), UINT8_C( 131),
                             UINT8_C( 227), UINT8_C(  25), UINT8_C( 179), UINT8_C( 188),
                             UINT8_C(   9), UINT8_C( 221), UINT8_C( 245), UINT8_C(  53),
                             UINT8_C(  28), UINT8_C(  61), UINT8_C( 221), UINT8_C( 150),
                             UINT8_C( 210), UINT8_C( 121), UINT8_C( 154), UINT8_C( 121),
                             UINT8_C( 202), UINT8_C( 196), UINT8_C(   7), UINT8_C(   2),
                             UINT8_C( 137), UINT8_C( 111), UINT8_C( 236), UINT8_C( 198),
                             UINT8_C( 158), UINT8_C(  83), UINT8_C(  32), UINT8_C( 207),
                             UINT8_C( 245), UINT8_C(  48), UINT8_C(  92), UINT8_C(  47),
                             UINT8_C( 218), UINT8_C(  11), UINT8_C(  26), UINT8_C(  90),
                             UINT8_C( 251), UINT8_C(  73), UINT8_C(  45), UINT8_C( 254)),
      simde_x_mm512_set_epu8(UINT8_C( 225), UINT8_C( 126), UINT8_C( 138), UINT8_C( 199),
                             UINT8_C( 130), UINT8_C(  29), UINT8_C( 101), UINT8_C( 241),
                             UINT8_C( 195), UINT8_C( 118), UINT8_C( 102), UINT8_C(  12),
                             UINT8_C( 197), UINT8_C( 215), UINT8_C( 196), UINT8_C(  46),
                             UINT8_C(  63), UINT8_C(  78), UINT8_C(  87), UINT8_C(  18),
                             UINT8_C(  18), UINT8_C(  32), UINT8_C( 230), UINT8_C( 250),
                             UINT8_C( 236), UINT8_C( 133), UINT8_C(  99), UINT8_C(  65),
                             UINT8_C(  13), UINT8_C(  25), UINT8_C( 108), UINT8_C( 135),
                             UINT8_C(  42), UINT8_C(   0), UINT8_C( 104), UINT8_C( 239),
                             UINT8_C( 111), UINT8_C( 146), UINT8_C( 217), UINT8_C( 125),
                             UINT8_C( 206), UINT8_C( 209), UINT8_C(  30), UINT8_C(  92),
                             UINT8_C(  19), UINT8_C( 248), UINT8_C( 136), UINT8_C( 127),
                             UINT8_C( 207), UINT8_C(  23), UINT8_C(  16), UINT8_C( 192),
                             UINT8_C( 177), UINT8_C( 116), UINT8_C( 251), UINT8_C( 206),
                             UINT8_C(  32), UINT8_C(  22), UINT8_C( 214), UINT8_C( 253),
                             UINT8_C(  30), UINT8_C(  64), UINT8_C(  96), UINT8_C( 190)),
      simde_x_mm512_set_epu8(UINT8_C( 153), UINT8_C( 132), UINT8_C( 255), UINT8_C( 176),
                             UINT8_C( 224), UINT8_C( 237), UINT8_C( 115), UINT8_C( 207),
                             UINT8_C( 255), UINT8_C( 205), UINT8_C( 119), UINT8_C( 189),
                             UINT8_C( 255), UINT8_C( 253), UINT8_C( 244), UINT8_C(  84),
                             UINT8_C(  91), UINT8_C( 192), UINT8_C(  88), UINT8_C( 213),
                             UINT8_C( 222), UINT8_C(  31), UINT8_C(  77), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C(  48), UINT8_C( 143), UINT8_C( 142),
                             UINT8_C(  22), UINT8_C( 246), UINT8_C( 212), UINT8_C( 190),
                             UINT8_C(  70), UINT8_C(  61), UINT8_C( 156), UINT8_C( 165),
                             UINT8_C(  26), UINT8_C( 255), UINT8_C( 223), UINT8_C( 219),
                             UINT8_C(  63), UINT8_C(  13), UINT8_C( 132), UINT8_C(  41),
                             UINT8_C( 152), UINT8_C( 197), UINT8_C( 255), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C( 106), UINT8_C(  48), UINT8_C( 255),
                             UINT8_C(  19), UINT8_C(  58), UINT8_C( 244), UINT8_C( 253),
                             UINT8_C( 250), UINT8_C(  59), UINT8_C( 104), UINT8_C( 216),
                             UINT8_C( 174), UINT8_C(  42), UINT8_C( 141), UINT8_C( 255)) },
    { simde_x_mm512_set_epu8(UINT8_C( 117), UINT8_C(  69), UINT8_C( 121), UINT8_C( 211),
                             UINT8_C(  30), UINT8_C( 183), UINT8_C(   2), UINT8_C( 216),
                             UINT8_C(  95), UINT8_C( 253), UINT8_C(  16), UINT8_C( 178),
                             UINT8_C( 128), UINT8_C( 215), UINT8_C( 190), UINT8_C(  66),
                             UINT8_C(  93), UINT8_C( 224), UINT8_C( 206), UINT8_C( 254),
                             UINT8_C( 195), UINT8_C(  29), UINT8_C( 168), UINT8_C( 138),
                             UINT8_C( 229), UINT8_C(  42), UINT8_C(  78), UINT8_C( 210),
                             UINT8_C( 177), UINT8_C(  38), UINT8_C( 181), UINT8_C(  14),
                             UINT8_C( 138), UINT8_C( 142), UINT8_C( 136), UINT8_C(  42),
                             UINT8_C(   4), UINT8_C(  79), UINT8_C( 172), UINT8_C( 146),
                             UINT8_C(   0), UINT8_C(  85), UINT8_C( 236), UINT8_C(  61),
                             UINT8_C(  40), UINT8_C( 181), UINT8_C(  69), UINT8_C( 157),
                             UINT8_C(  73), UINT8_C( 222), UINT8_C( 242), UINT8_C(  72),
                             UINT8_C( 101), UINT8_C(  96), UINT8_C( 142), UINT8_C( 132),
                             UINT8_C( 169), UINT8_C(  43), UINT8_C( 138), UINT8_C( 114),
                             UINT8_C( 168), UINT8_C(   8), UINT8_C( 204), UINT8_C(  75)),
      UINT64_C(14890918166471265655),
      simde_x_mm512_set_epu8(UINT8_C( 200), UINT8_C( 186), UINT8_C(  66), UINT8_C( 145),
                             UINT8_C( 187), UINT8_C(  15), UINT8_C( 174), UINT8_C( 244),
                             UINT8_C( 167), UINT8_C(  37), UINT8_C(  80), UINT8_C( 120),
                             UINT8_C( 173), UINT8_C( 136), UINT8_C(  95), UINT8_C(  21),
                             UINT8_C(  91), UINT8_C( 159), UINT8_C( 184), UINT8_C(  42),
                             UINT8_C(  22), UINT8_C( 186), UINT8_C(  71), UINT8_C( 178),
                             UINT8_C( 251), UINT8_C(  52), UINT8_C( 234), UINT8_C( 222),
                             UINT8_C(  16), UINT8_C(  92), UINT8_C(  91), UINT8_C( 184),
                             UINT8_C(   3), UINT8_C( 225), UINT8_C( 161), UINT8_C( 200),
                             UINT8_C( 206), UINT8_C(  68), UINT8_C( 232), UINT8_C( 206),
                             UINT8_C(  94), UINT8_C(  67), UINT8_C( 108), UINT8_C( 138),
                             UINT8_C( 191), UINT8_C(  31), UINT8_C(  70), UINT8_C( 108),
                             UINT8_C( 190), UINT8_C( 107), UINT8_C( 171), UINT8_C(  38),
                             UINT8_C(   2), UINT8_C(  32), UINT8_C(  56), UINT8_C(  66),
                             UINT8_C( 254), UINT8_C( 182), UINT8_C( 112), UINT8_C(  10),
                             UINT8_C(  64), UINT8_C( 100), UINT8_C( 201), UINT8_C(  83)),
      simde_x_mm512_set_epu8(UINT8_C( 187), UINT8_C( 211), UINT8_C(  23), UINT8_C(  70),
                             UINT8_C(  22), UINT8_C( 113), UINT8_C(  75), UINT8_C( 139),
                             UINT8_C(  69), UINT8_C( 182), UINT8_C(  40), UINT8_C( 217),
                             UINT8_C( 205), UINT8_C( 165), UINT8_C(  25), UINT8_C( 252),
                             UINT8_C( 244), UINT8_C( 243), UINT8_C( 179), UINT8_C(  75),
                             UINT8_C( 140), UINT8_C( 220), UINT8_C(  38), UINT8_C( 204),
                             UINT8_C(  13), UINT8_C( 204), UINT8_C( 156), UINT8_C( 210),
                             UINT8_C(  13), UINT8_C(  83), UINT8_C( 162), UINT8_C( 102),
                             UINT8_C( 116), UINT8_C( 196), UINT8_C(  44), UINT8_C( 249),
                             UINT8_C( 104), UINT8_C( 206), UINT8_C( 226), UINT8_C(  17),
                             UINT8_C(  13), UINT8_C( 149), UINT8_C( 111), UINT8_C( 243),
                             UINT8_C(  17), UINT8_C( 211), UINT8_C( 225), UINT8_C(  76),
                             UINT8_C( 154), UINT8_C( 185), UINT8_C( 116), UINT8_C(  72),
                             UINT8_C( 245), UINT8_C( 159), UINT8_C(  93), UINT8_C(  48),
                             UINT8_C( 181), UINT8_C( 166), UINT8_C( 246), UINT8_C( 178),
                             UINT8_C( 248), UINT8_C( 246), UINT8_C(  48), UINT8_C( 245)),
      simde_x_mm512_set_epu8(UINT8_C( 255), UINT8_C( 255), UINT8_C( 121), UINT8_C( 211),
                             UINT8_C( 209), UINT8_C( 128), UINT8_C( 249), UINT8_C( 216),
                             UINT8_C( 236), UINT8_C( 253), UINT8_C( 120), UINT8_C( 178),
                             UINT8_C( 128), UINT8_C( 255), UINT8_C( 120), UINT8_C( 255),
                             UINT8_C(  93), UINT8_C( 224), UINT8_C( 255), UINT8_C( 254),
                             UINT8_C( 162), UINT8_C(  29), UINT8_C( 109), UINT8_C( 255),
                             UINT8_C( 229), UINT8_C(  42), UINT8_C( 255), UINT8_C( 210),
                             UINT8_C(  29), UINT8_C( 175), UINT8_C( 181), UINT8_C( 255),
                             UINT8_C( 138), UINT8_C( 255), UINT8_C( 136), UINT8_C(  42),
                             UINT8_C( 255), UINT8_C(  79), UINT8_C( 255), UINT8_C( 223),
                             UINT8_C( 107), UINT8_C( 216), UINT8_C( 219), UINT8_C(  61),
                             UINT8_C( 208), UINT8_C( 242), UINT8_C( 255), UINT8_C( 157),
                             UINT8_C(  73), UINT8_C( 255), UINT8_C( 242), UINT8_C(  72),
                             UINT8_C( 247), UINT8_C( 191), UINT8_C( 142), UINT8_C( 114),
                             UINT8_C( 169), UINT8_C( 255), UINT8_C( 255), UINT8_C( 188),
                             UINT8_C( 168), UINT8_C( 255), UINT8_C( 249), UINT8_C( 255)) },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde__m512i r = simde_mm512_mask_adds_epu8(test_vec[i].src, test_vec[i].k, test_vec[i].a, test_vec[i].b);
    simde_assert_m512i_u8(r, ==, test_vec[i].r);
  }

  return 0;
}

static int
test_simde_mm512_maskz_adds_epu8(SIMDE_MUNIT_TEST_ARGS) {
  const struct {
    simde__mmask64 k;
    simde__m512i a;
    simde__m512i b;
    simde__m512i r;
  } test_vec[8] = {
    { UINT64_C(17286015531074160252),
      simde_x_mm512_set_epu8(UINT8_C( 141), UINT8_C( 229), UINT8_C(  62), UINT8_C( 171),
                             UINT8_C(  49), UINT8_C( 141), UINT8_C(  38), UINT8_C(   4),
                             UINT8_C(  92), UINT8_C( 116), UINT8_C( 178), UINT8_C( 237),
                             UINT8_C( 183), UINT8_C(  22), UINT8_C( 190), UINT8_C( 227),
                             UINT8_C(  55), UINT8_C(  78), UINT8_C( 211), UINT8_C( 137),
                             UINT8_C(  30), UINT8_C( 227), UINT8_C( 233), UINT8_C(  89),
                             UINT8_C(  15), UINT8_C( 119), UINT8_C( 168), UINT8_C( 109),
                             UINT8_C( 240), UINT8_C( 246), UINT8_C(   0), UINT8_C( 238),
                             UINT8_C(   1), UINT8_C( 116), UINT8_C(  62), UINT8_C( 183),
                             UINT8_C( 134), UINT8_C(   0), UINT8_C( 111), UINT8_C(  95),
                             UINT8_C( 236), UINT8_C(   3), UINT8_C( 122), UINT8_C( 135),
                             UINT8_C(  13), UINT8_C(  25), UINT8_C( 221), UINT8_C( 129),
                             UINT8_C(  82), UINT8_C(  90), UINT8_C(  53), UINT8_C( 123),
                             UINT8_C(  73), UINT8_C( 108), UINT8_C( 238), UINT8_C(  15),
                             UINT8_C(  81), UINT8_C( 229), UINT8_C( 102), UINT8_C( 118),
                             UINT8_C(  39), UINT8_C( 179), UINT8_C(  45), UINT8_C(  81)),
      simde_x_mm512_set_epu8(UINT8_C(  68), UINT8_C( 148), UINT8_C( 135), UINT8_C( 141),
                             UINT8_C( 197), UINT8_C( 178), UINT8_C( 145), UINT8_C(  56),
                             UINT8_C(   9), UINT8_C( 135), UINT8_C( 120), UINT8_C( 220),
                             UINT8_C(  36), UINT8_C( 153), UINT8_C( 152), UINT8_C(  25),
                             UINT8_C( 145), UINT8_C( 193), UINT8_C( 221), UINT8_C( 136),
                             UINT8_C(  28), UINT8_C( 212), UINT8_C( 230), UINT8_C( 170),
                             UINT8_C( 243), UINT8_C(  53), UINT8_C( 168), UINT8_C( 149),
                             UINT8_C(  68), UINT8_C(  42), UINT8_C( 138), UINT8_C( 111),
                             UINT8_C(  54), UINT8_C( 198), UINT8_C( 243), UINT8_C(  27),
                             UINT8_C(  23), UINT8_C(  41), UINT8_C( 137), UINT8_C(  44),
                             UINT8_C(   7), UINT8_C( 136), UINT8_C(  32), UINT8_C( 213),
                             UINT8_C( 114), UINT8_C( 184), UINT8_C(  73), UINT8_C( 160),
                             UINT8_C(  96), UINT8_C( 110), UINT8_C( 175), UINT8_C( 180),
                             UINT8_C( 103), UINT8_C( 156), UINT8_C( 234), UINT8_C(  18),
                             UINT8_C( 115), UINT8_C(  54), UINT8_C( 216), UINT8_C( 125),
                             UINT8_C( 110), UINT8_C(  31), UINT8_C(  51), UINT8_C( 152)),
      simde_x_mm512_set_epu8(UINT8_C( 209), UINT8_C( 255), UINT8_C( 197), UINT8_C(   0),
                             UINT8_C( 246), UINT8_C( 255), UINT8_C( 183), UINT8_C(  60),
                             UINT8_C( 101), UINT8_C( 251), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 175), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C( 255), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C( 138), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 157), UINT8_C(  41), UINT8_C( 248), UINT8_C( 139),
                             UINT8_C( 243), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 127), UINT8_C( 209), UINT8_C( 255), UINT8_C( 255),
                             UINT8_C( 178), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C( 255), UINT8_C( 243),
                             UINT8_C( 149), UINT8_C( 210), UINT8_C(   0), UINT8_C(   0)) },
    { UINT64_C( 9031211210081693899),
      simde_x_mm512_set_epu8(UINT8_C( 150), UINT8_C( 238), UINT8_C(  65), UINT8_C( 152),
                             UINT8_C(  81), UINT8_C(  38), UINT8_C( 172), UINT8_C( 254),
                             UINT8_C( 242), UINT8_C(  85), UINT8_C( 176), UINT8_C(  80),
                             UINT8_C(  48), UINT8_C(  93), UINT8_C(  79), UINT8_C( 127),
                             UINT8_C(  16), UINT8_C(  41), UINT8_C(  54), UINT8_C( 140),
                             UINT8_C(  17), UINT8_C(  42), UINT8_C( 170), UINT8_C(  38),
                             UINT8_C( 138), UINT8_C( 200), UINT8_C(  60), UINT8_C(  19),
                             UINT8_C( 156), UINT8_C( 149), UINT8_C( 105), UINT8_C( 180),
                             UINT8_C(  10), UINT8_C( 247), UINT8_C( 244), UINT8_C( 200),
                             UINT8_C( 185), UINT8_C(  96), UINT8_C(   6), UINT8_C(  24),
                             UINT8_C(  69), UINT8_C(  73), UINT8_C( 229), UINT8_C(   3),
                             UINT8_C( 161), UINT8_C(  50), UINT8_C( 189), UINT8_C( 217),
                             UINT8_C(  97), UINT8_C(  62), UINT8_C( 101), UINT8_C(  56),
                             UINT8_C( 177), UINT8_C(  83), UINT8_C( 157), UINT8_C( 200),
                             UINT8_C( 239), UINT8_C( 200), UINT8_C( 248), UINT8_C( 240),
                             UINT8_C(  84), UINT8_C( 161), UINT8_C( 183), UINT8_C(  54)),
      simde_x_mm512_set_epu8(UINT8_C(  63), UINT8_C( 205), UINT8_C(  87), UINT8_C(  32),
                             UINT8_C( 191), UINT8_C(  55), UINT8_C(  14), UINT8_C(  81),
                             UINT8_C( 133), UINT8_C( 156), UINT8_C( 217), UINT8_C( 212),
                             UINT8_C(  22), UINT8_C( 112), UINT8_C(  16), UINT8_C(  15),
                             UINT8_C( 152), UINT8_C( 154), UINT8_C( 102), UINT8_C( 161),
                             UINT8_C(  69), UINT8_C(  13), UINT8_C( 235), UINT8_C(  45),
                             UINT8_C(  62), UINT8_C( 136), UINT8_C( 145), UINT8_C(  32),
                             UINT8_C( 149), UINT8_C( 226), UINT8_C(  99), UINT8_C( 192),
                             UINT8_C(   8), UINT8_C( 214), UINT8_C(  81), UINT8_C( 222),
                             UINT8_C( 210), UINT8_C(  26), UINT8_C(  31), UINT8_C( 254),
                             UINT8_C(  68), UINT8_C( 249), UINT8_C( 185), UINT8_C(  46),
                             UINT8_C( 235), UINT8_C( 183), UINT8_C(  21), UINT8_C(  83),
                             UINT8_C( 148), UINT8_C( 159), UINT8_C( 187), UINT8_C(  73),
                             UINT8_C(  57), UINT8_C( 219), UINT8_C(  21), UINT8_C(  82),
                             UINT8_C( 137), UINT8_C( 130), UINT8_C( 126), UINT8_C(  91),
                             UINT8_C( 115), UINT8_C(  31), UINT8_C( 177), UINT8_C(  28)),
      simde_x_mm512_set_epu8(UINT8_C(   0), UINT8_C( 255), UINT8_C( 152), UINT8_C( 184),
                             UINT8_C( 255), UINT8_C(  93), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C( 241), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C( 205), UINT8_C(   0), UINT8_C( 142),
                             UINT8_C(   0), UINT8_C( 195), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(  86), UINT8_C(  55), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C( 200), UINT8_C(   0), UINT8_C( 205), UINT8_C(  51),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 204), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 122), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C( 255), UINT8_C(  49),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C( 245), UINT8_C( 221), UINT8_C( 255), UINT8_C( 129),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 199), UINT8_C(   0), UINT8_C( 255), UINT8_C(  82)) },
    { UINT64_C( 6828010367541473016),
      simde_x_mm512_set_epu8(UINT8_C(  84), UINT8_C( 160), UINT8_C(  87), UINT8_C( 234),
                             UINT8_C( 251), UINT8_C( 253), UINT8_C( 129), UINT8_C(  41),
                             UINT8_C(  74), UINT8_C(  72), UINT8_C( 252), UINT8_C(  28),
                             UINT8_C( 141), UINT8_C(  93), UINT8_C( 102), UINT8_C(  44),
                             UINT8_C( 153), UINT8_C( 227), UINT8_C( 206), UINT8_C(  48),
                             UINT8_C( 160), UINT8_C( 206), UINT8_C(  46), UINT8_C( 191),
                             UINT8_C(   4), UINT8_C(  43), UINT8_C( 181), UINT8_C(  97),
                             UINT8_C( 230), UINT8_C( 153), UINT8_C(  71), UINT8_C( 149),
                             UINT8_C(  91), UINT8_C(  45), UINT8_C( 245), UINT8_C(  47),
                             UINT8_C(  29), UINT8_C(  25), UINT8_C(  26), UINT8_C( 247),
                             UINT8_C(  10), UINT8_C(  36), UINT8_C( 177), UINT8_C( 203),
                             UINT8_C(  41), UINT8_C(   1), UINT8_C( 233), UINT8_C( 193),
                             UINT8_C( 129), UINT8_C(  68), UINT8_C(  48), UINT8_C(  36),
                             UINT8_C(  89), UINT8_C( 144), UINT8_C( 225), UINT8_C( 120),
                             UINT8_C(  35), UINT8_C(  62), UINT8_C( 235), UINT8_C( 142),
                             UINT8_C( 152), UINT8_C(  57), UINT8_C(  42), UINT8_C( 145)),
      simde_x_mm512_set_epu8(UINT8_C(  96), UINT8_C( 192), UINT8_C( 233), UINT8_C( 210),
                             UINT8_C( 227), UINT8_C( 185), UINT8_C(  71), UINT8_C(  90),
                             UINT8_C(  44), UINT8_C( 164), UINT8_C( 225), UINT8_C(  26),
                             UINT8_C( 157), UINT8_C( 203), UINT8_C( 117), UINT8_C(  18),
                             UINT8_C( 193), UINT8_C(  45), UINT8_C(  12), UINT8_C(  24),
                             UINT8_C( 148), UINT8_C(  18), UINT8_C( 196), UINT8_C(  28),
                             UINT8_C(  50), UINT8_C( 245), UINT8_C( 188), UINT8_C( 225),
                             UINT8_C( 105), UINT8_C( 150), UINT8_C(  98), UINT8_C(  51),
                             UINT8_C(  58), UINT8_C( 103), UINT8_C( 111), UINT8_C( 129),
                             UINT8_C(  68), UINT8_C( 200), UINT8_C( 124), UINT8_C( 137),
                             UINT8_C(  74), UINT8_C( 194), UINT8_C( 140), UINT8_C(  37),
                             UINT8_C( 244), UINT8_C( 114), UINT8_C(   0), UINT8_C(  61),
                             UINT8_C( 103), UINT8_C( 252), UINT8_C( 151), UINT8_C( 188),
                             UINT8_C(  39), UINT8_C( 156), UINT8_C( 163), UINT8_C(  11),
                             UINT8_C( 176), UINT8_C( 237), UINT8_C( 234), UINT8_C( 217),
                             UINT8_C( 127), UINT8_C( 218), UINT8_C( 131), UINT8_C( 145)),
      simde_x_mm512_set_epu8(UINT8_C(   0), UINT8_C( 255), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 200), UINT8_C(   0),
                             UINT8_C( 118), UINT8_C( 236), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C(  62),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 218), UINT8_C(  72),
                             UINT8_C(   0), UINT8_C( 224), UINT8_C( 242), UINT8_C( 219),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 149), UINT8_C(   0), UINT8_C( 255), UINT8_C( 176),
                             UINT8_C(  97), UINT8_C( 225), UINT8_C( 150), UINT8_C( 255),
                             UINT8_C(  84), UINT8_C( 230), UINT8_C( 255), UINT8_C( 240),
                             UINT8_C( 255), UINT8_C( 115), UINT8_C( 233), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C( 199), UINT8_C(   0),
                             UINT8_C( 128), UINT8_C( 255), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C( 211), UINT8_C( 255), UINT8_C( 255), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0)) },
    { UINT64_C(18325019528117086600),
      simde_x_mm512_set_epu8(UINT8_C( 122), UINT8_C( 202), UINT8_C(  50), UINT8_C( 123),
                             UINT8_C( 225), UINT8_C( 182), UINT8_C( 192), UINT8_C(  54),
                             UINT8_C( 175), UINT8_C(  60), UINT8_C(  31), UINT8_C( 233),
                             UINT8_C( 108), UINT8_C( 137), UINT8_C( 164), UINT8_C( 176),
                             UINT8_C( 226), UINT8_C( 219), UINT8_C(  51), UINT8_C( 220),
                             UINT8_C(   8), UINT8_C(  52), UINT8_C(  97), UINT8_C( 123),
                             UINT8_C( 207), UINT8_C( 132), UINT8_C(  95), UINT8_C( 173),
                             UINT8_C(  70), UINT8_C( 206), UINT8_C( 195), UINT8_C(  25),
                             UINT8_C( 159), UINT8_C(  28), UINT8_C( 198), UINT8_C(  11),
                             UINT8_C( 242), UINT8_C( 126), UINT8_C(  81), UINT8_C(  45),
                             UINT8_C( 233), UINT8_C( 120), UINT8_C( 173), UINT8_C( 240),
                             UINT8_C(   7), UINT8_C(  51), UINT8_C( 199), UINT8_C( 206),
                             UINT8_C( 235), UINT8_C(  98), UINT8_C(  88), UINT8_C(   0),
                             UINT8_C( 190), UINT8_C(   3), UINT8_C( 124), UINT8_C( 143),
                             UINT8_C(  50), UINT8_C(  88), UINT8_C( 171), UINT8_C( 163),
                             UINT8_C( 212), UINT8_C( 243), UINT8_C( 162), UINT8_C(  17)),
      simde_x_mm512_set_epu8(UINT8_C( 243), UINT8_C( 244), UINT8_C( 132), UINT8_C(  96),
                             UINT8_C( 243), UINT8_C( 158), UINT8_C(  99), UINT8_C( 243),
                             UINT8_C(  56), UINT8_C( 211), UINT8_C( 148), UINT8_C( 237),
                             UINT8_C( 132), UINT8_C( 229), UINT8_C(  22), UINT8_C( 126),
                             UINT8_C( 150), UINT8_C( 188), UINT8_C( 196), UINT8_C(   8),
                             UINT8_C(  60), UINT8_C(  93), UINT8_C( 223), UINT8_C( 229),
                             UINT8_C( 249), UINT8_C(  27), UINT8_C( 134), UINT8_C( 218),
                             UINT8_C(  23), UINT8_C(   6), UINT8_C(  45), UINT8_C( 235),
                             UINT8_C( 233), UINT8_C( 155), UINT8_C( 116), UINT8_C( 127),
                             UINT8_C(  96), UINT8_C(  40), UINT8_C( 159), UINT8_C(  40),
                             UINT8_C(  86), UINT8_C( 212), UINT8_C(  70), UINT8_C( 185),
                             UINT8_C(  62), UINT8_C( 235), UINT8_C(  66), UINT8_C(  68),
                             UINT8_C( 169), UINT8_C( 195), UINT8_C(  48), UINT8_C( 186),
                             UINT8_C(  18), UINT8_C( 178), UINT8_C( 158), UINT8_C( 117),
                             UINT8_C(  74), UINT8_C(  32), UINT8_C(  93), UINT8_C( 125),
                             UINT8_C( 209), UINT8_C( 196), UINT8_C( 170), UINT8_C( 117)),
      simde_x_mm512_set_epu8(UINT8_C( 255), UINT8_C( 255), UINT8_C( 182), UINT8_C( 219),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 240), UINT8_C( 255), UINT8_C( 186), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(  68), UINT8_C( 145), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C( 229), UINT8_C(   0),
                             UINT8_C(  93), UINT8_C(   0), UINT8_C( 240), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C( 255), UINT8_C( 138),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C( 240), UINT8_C(  85),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C( 255), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 136), UINT8_C(   0),
                             UINT8_C( 208), UINT8_C(   0), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C( 124), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0)) },
    { UINT64_C( 7677112093376593822),
      simde_x_mm512_set_epu8(UINT8_C( 203), UINT8_C(  34), UINT8_C(   9), UINT8_C(  64),
                             UINT8_C( 195), UINT8_C( 231), UINT8_C( 141), UINT8_C( 100),
                             UINT8_C(  65), UINT8_C(   8), UINT8_C(  69), UINT8_C( 248),
                             UINT8_C( 241), UINT8_C( 205), UINT8_C(   1), UINT8_C(  90),
                             UINT8_C( 115), UINT8_C(  51), UINT8_C( 165), UINT8_C(  56),
                             UINT8_C(  64), UINT8_C( 217), UINT8_C( 137), UINT8_C( 228),
                             UINT8_C( 202), UINT8_C(  28), UINT8_C(  54), UINT8_C( 248),
                             UINT8_C( 202), UINT8_C( 128), UINT8_C( 228), UINT8_C( 185),
                             UINT8_C( 107), UINT8_C( 190), UINT8_C( 142), UINT8_C( 168),
                             UINT8_C(  34), UINT8_C( 173), UINT8_C( 235), UINT8_C( 192),
                             UINT8_C( 121), UINT8_C( 236), UINT8_C( 167), UINT8_C( 162),
                             UINT8_C( 112), UINT8_C( 229), UINT8_C(  81), UINT8_C( 202),
                             UINT8_C( 192), UINT8_C( 142), UINT8_C(  48), UINT8_C( 167),
                             UINT8_C( 195), UINT8_C(  26), UINT8_C(  43), UINT8_C(  29),
                             UINT8_C(   0), UINT8_C(  64), UINT8_C( 123), UINT8_C( 189),
                             UINT8_C(  15), UINT8_C( 120), UINT8_C(  36), UINT8_C(  40)),
      simde_x_mm512_set_epu8(UINT8_C( 113), UINT8_C(  32), UINT8_C(  71), UINT8_C(  55),
                             UINT8_C( 230), UINT8_C(  82), UINT8_C( 175), UINT8_C( 236),
                             UINT8_C( 201), UINT8_C( 112), UINT8_C(  45), UINT8_C(  37),
                             UINT8_C(  67), UINT8_C( 187), UINT8_C(  64), UINT8_C(  39),
                             UINT8_C(  72), UINT8_C(  45), UINT8_C( 120), UINT8_C( 251),
                             UINT8_C( 147), UINT8_C(  62), UINT8_C(  17), UINT8_C(  31),
                             UINT8_C( 226), UINT8_C( 198), UINT8_C(  56), UINT8_C(  21),
                             UINT8_C(  72), UINT8_C( 182), UINT8_C( 216), UINT8_C( 120),
                             UINT8_C(  95), UINT8_C( 108), UINT8_C(  32), UINT8_C(  64),
                             UINT8_C( 128), UINT8_C( 102), UINT8_C( 235), UINT8_C(  28),
                             UINT8_C( 105), UINT8_C(  52), UINT8_C(  85), UINT8_C( 152),
                             UINT8_C(  57), UINT8_C( 225), UINT8_C( 218), UINT8_C( 132),
                             UINT8_C( 149), UINT8_C( 254), UINT8_C(  55), UINT8_C(  46),
                             UINT8_C( 185), UINT8_C(  77), UINT8_C(  18), UINT8_C(  70),
                             UINT8_C(  89), UINT8_C( 125), UINT8_C( 214), UINT8_C( 131),
                             UINT8_C( 121), UINT8_C( 245), UINT8_C( 187), UINT8_C( 197)),
      simde_x_mm512_set_epu8(UINT8_C(   0), UINT8_C(  66), UINT8_C(  80), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C(  65), UINT8_C(   0),
                             UINT8_C( 187), UINT8_C(   0), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C( 226), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C( 232),
                             UINT8_C( 162), UINT8_C(   0), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C( 226), UINT8_C(   0), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C( 103), UINT8_C( 213),
                             UINT8_C( 255), UINT8_C( 103), UINT8_C(  61), UINT8_C(  99),
                             UINT8_C(  89), UINT8_C(   0), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C( 136), UINT8_C( 255), UINT8_C( 223), UINT8_C(   0)) },
    { UINT64_C( 4840581956081845689),
      simde_x_mm512_set_epu8(UINT8_C( 122), UINT8_C( 148), UINT8_C( 186), UINT8_C( 193),
                             UINT8_C(  56), UINT8_C(  71), UINT8_C( 242), UINT8_C(  49),
                             UINT8_C( 183), UINT8_C(  53), UINT8_C( 227), UINT8_C(   3),
                             UINT8_C( 183), UINT8_C(  43), UINT8_C( 234), UINT8_C(  85),
                             UINT8_C( 230), UINT8_C( 247), UINT8_C(  66), UINT8_C(   1),
                             UINT8_C( 243), UINT8_C(  60), UINT8_C( 137), UINT8_C( 173),
                             UINT8_C( 134), UINT8_C( 192), UINT8_C( 173), UINT8_C( 182),
                             UINT8_C( 119), UINT8_C( 248), UINT8_C(  12), UINT8_C( 113),
                             UINT8_C( 244), UINT8_C( 172), UINT8_C(   6), UINT8_C(  69),
                             UINT8_C(   2), UINT8_C( 181), UINT8_C( 222), UINT8_C( 130),
                             UINT8_C(   3), UINT8_C( 128), UINT8_C( 247), UINT8_C(  24),
                             UINT8_C(  11), UINT8_C( 162), UINT8_C( 224), UINT8_C( 110),
                             UINT8_C(  33), UINT8_C( 232), UINT8_C( 125), UINT8_C(  35),
                             UINT8_C( 153), UINT8_C( 208), UINT8_C( 234), UINT8_C(  38),
                             UINT8_C( 175), UINT8_C(   9), UINT8_C( 245), UINT8_C( 132),
                             UINT8_C(  71), UINT8_C(  31), UINT8_C( 214), UINT8_C(  93)),
      simde_x_mm512_set_epu8(UINT8_C(  53), UINT8_C(  77), UINT8_C(  63), UINT8_C( 172),
                             UINT8_C(  27), UINT8_C(  22), UINT8_C(   3), UINT8_C( 219),
                             UINT8_C(  65), UINT8_C( 118), UINT8_C( 130), UINT8_C(  97),
                             UINT8_C( 109), UINT8_C(   7), UINT8_C( 142), UINT8_C( 181),
                             UINT8_C( 131), UINT8_C( 121), UINT8_C( 128), UINT8_C( 103),
                             UINT8_C(   0), UINT8_C( 101), UINT8_C( 215), UINT8_C(  89),
                             UINT8_C( 173), UINT8_C( 191), UINT8_C(   9), UINT8_C( 249),
                             UINT8_C( 193), UINT8_C(  13), UINT8_C( 105), UINT8_C(  92),
                             UINT8_C( 238), UINT8_C( 235), UINT8_C( 154), UINT8_C( 142),
                             UINT8_C(  74), UINT8_C( 121), UINT8_C( 211), UINT8_C(  52),
                             UINT8_C( 193), UINT8_C( 163), UINT8_C(  98), UINT8_C( 106),
                             UINT8_C( 147), UINT8_C( 209), UINT8_C(  37), UINT8_C(  70),
                             UINT8_C( 100), UINT8_C( 121), UINT8_C(  18), UINT8_C(  28),
                             UINT8_C( 139), UINT8_C( 107), UINT8_C(   3), UINT8_C( 194),
                             UINT8_C(  42), UINT8_C(  72), UINT8_C(  91), UINT8_C(  86),
                             UINT8_C( 184), UINT8_C(   9), UINT8_C( 176), UINT8_C( 118)),
      simde_x_mm512_set_epu8(UINT8_C(   0), UINT8_C( 225), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C( 245), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C(  50), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C( 194), UINT8_C( 104),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C( 255), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C( 182), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C( 160), UINT8_C( 211),
                             UINT8_C(  76), UINT8_C( 255), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C( 158), UINT8_C( 255), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 133), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C(   0), UINT8_C( 232),
                             UINT8_C( 217), UINT8_C(   0), UINT8_C( 255), UINT8_C( 218),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C(   0), UINT8_C( 211)) },
    { UINT64_C(17498311407133456191),
      simde_x_mm512_set_epu8(UINT8_C(  61), UINT8_C( 167), UINT8_C(  84), UINT8_C( 162),
                             UINT8_C(  31), UINT8_C( 140), UINT8_C( 189), UINT8_C( 154),
                             UINT8_C( 184), UINT8_C( 165), UINT8_C( 151), UINT8_C( 148),
                             UINT8_C( 212), UINT8_C(  74), UINT8_C( 228), UINT8_C( 124),
                             UINT8_C( 120), UINT8_C( 215), UINT8_C( 177), UINT8_C( 122),
                             UINT8_C(  87), UINT8_C( 137), UINT8_C(  54), UINT8_C( 254),
                             UINT8_C( 209), UINT8_C(  84), UINT8_C( 130), UINT8_C( 192),
                             UINT8_C(  14), UINT8_C(  11), UINT8_C(  37), UINT8_C( 233),
                             UINT8_C(  67), UINT8_C( 124), UINT8_C(  58), UINT8_C( 162),
                             UINT8_C(  30), UINT8_C( 223), UINT8_C(  70), UINT8_C( 232),
                             UINT8_C(  38), UINT8_C( 159), UINT8_C( 200), UINT8_C( 196),
                             UINT8_C( 197), UINT8_C(  65), UINT8_C( 182), UINT8_C(  45),
                             UINT8_C( 245), UINT8_C(  55), UINT8_C( 174), UINT8_C(  12),
                             UINT8_C( 106), UINT8_C(  22), UINT8_C( 132), UINT8_C( 252),
                             UINT8_C(   2), UINT8_C( 175), UINT8_C(  14), UINT8_C(  90),
                             UINT8_C( 156), UINT8_C( 134), UINT8_C( 221), UINT8_C(  81)),
      simde_x_mm512_set_epu8(UINT8_C(  21), UINT8_C( 108), UINT8_C( 125), UINT8_C( 196),
                             UINT8_C( 184), UINT8_C(  74), UINT8_C( 251), UINT8_C( 198),
                             UINT8_C( 215), UINT8_C(  22), UINT8_C( 141), UINT8_C( 102),
                             UINT8_C(  59), UINT8_C( 176), UINT8_C( 241), UINT8_C( 193),
                             UINT8_C(  84), UINT8_C( 185), UINT8_C(   8), UINT8_C(  12),
                             UINT8_C( 245), UINT8_C( 180), UINT8_C(  62), UINT8_C(  93),
                             UINT8_C( 181), UINT8_C( 179), UINT8_C( 172), UINT8_C( 148),
                             UINT8_C( 221), UINT8_C(  14), UINT8_C( 196), UINT8_C(  18),
                             UINT8_C(  23), UINT8_C( 196), UINT8_C( 193), UINT8_C( 142),
                             UINT8_C( 201), UINT8_C(  75), UINT8_C( 157), UINT8_C( 201),
                             UINT8_C(  58), UINT8_C(  76), UINT8_C( 154), UINT8_C( 138),
                             UINT8_C( 226), UINT8_C(  39), UINT8_C( 119), UINT8_C(  85),
                             UINT8_C( 248), UINT8_C( 184), UINT8_C( 196), UINT8_C( 162),
                             UINT8_C( 144), UINT8_C( 119), UINT8_C( 124), UINT8_C(  76),
                             UINT8_C( 214), UINT8_C( 132), UINT8_C(  54), UINT8_C(  74),
                             UINT8_C( 164), UINT8_C(  99), UINT8_C(  79), UINT8_C( 253)),
      simde_x_mm512_set_epu8(UINT8_C(  82), UINT8_C( 255), UINT8_C( 209), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C( 187), UINT8_C(   0), UINT8_C( 250),
                             UINT8_C(   0), UINT8_C( 250), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C( 185), UINT8_C( 134),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C( 233), UINT8_C( 251),
                             UINT8_C(  90), UINT8_C( 255), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 255), UINT8_C( 227), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C( 235), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C( 255), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C( 239), UINT8_C( 255), UINT8_C( 174),
                             UINT8_C(   0), UINT8_C( 141), UINT8_C( 255), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(  68), UINT8_C( 164),
                             UINT8_C( 255), UINT8_C( 233), UINT8_C( 255), UINT8_C( 255)) },
    { UINT64_C( 3462613925466476941),
      simde_x_mm512_set_epu8(UINT8_C(  18), UINT8_C( 182), UINT8_C(  14), UINT8_C(  36),
                             UINT8_C( 249), UINT8_C( 113), UINT8_C(  40), UINT8_C(  48),
                             UINT8_C( 149), UINT8_C( 222), UINT8_C( 181), UINT8_C(  85),
                             UINT8_C( 221), UINT8_C( 140), UINT8_C(  65), UINT8_C( 235),
                             UINT8_C(  15), UINT8_C(   3), UINT8_C(  45), UINT8_C(  21),
                             UINT8_C(  72), UINT8_C(  93), UINT8_C( 108), UINT8_C( 125),
                             UINT8_C(   1), UINT8_C(  75), UINT8_C(  21), UINT8_C( 220),
                             UINT8_C( 130), UINT8_C( 122), UINT8_C(  71), UINT8_C(  76),
                             UINT8_C(  28), UINT8_C( 200), UINT8_C(  32), UINT8_C( 101),
                             UINT8_C( 149), UINT8_C( 145), UINT8_C( 168), UINT8_C( 237),
                             UINT8_C( 179), UINT8_C(  19), UINT8_C( 235), UINT8_C( 145),
                             UINT8_C( 188), UINT8_C(  82), UINT8_C( 138), UINT8_C( 180),
                             UINT8_C(  47), UINT8_C( 127), UINT8_C(  62), UINT8_C( 240),
                             UINT8_C(  10), UINT8_C( 242), UINT8_C( 156), UINT8_C(  86),
                             UINT8_C(  29), UINT8_C( 107), UINT8_C(  56), UINT8_C(  21),
                             UINT8_C(  24), UINT8_C(  68), UINT8_C( 160), UINT8_C(  64)),
      simde_x_mm512_set_epu8(UINT8_C( 199), UINT8_C(  94), UINT8_C( 131), UINT8_C( 132),
                             UINT8_C(  36), UINT8_C(  57), UINT8_C(  68), UINT8_C( 204),
                             UINT8_C(  39), UINT8_C(  50), UINT8_C( 208), UINT8_C(  94),
                             UINT8_C(  53), UINT8_C(  11), UINT8_C(  29), UINT8_C(  65),
                             UINT8_C( 174), UINT8_C( 137), UINT8_C( 115), UINT8_C(  68),
                             UINT8_C( 187), UINT8_C( 118), UINT8_C(  17), UINT8_C(   8),
                             UINT8_C( 192), UINT8_C( 203), UINT8_C( 214), UINT8_C( 126),
                             UINT8_C(  67), UINT8_C(  50), UINT8_C( 238), UINT8_C(  76),
                             UINT8_C( 237), UINT8_C( 123), UINT8_C( 169), UINT8_C( 106),
                             UINT8_C( 182), UINT8_C(  44), UINT8_C( 117), UINT8_C( 103),
                             UINT8_C(  81), UINT8_C( 122), UINT8_C(  56), UINT8_C( 246),
                             UINT8_C(  67), UINT8_C(  79), UINT8_C(  83), UINT8_C( 218),
                             UINT8_C( 243), UINT8_C(  43), UINT8_C(  27), UINT8_C( 159),
                             UINT8_C( 102), UINT8_C( 126), UINT8_C(  38), UINT8_C( 194),
                             UINT8_C( 232), UINT8_C( 117), UINT8_C( 218), UINT8_C( 163),
                             UINT8_C( 198), UINT8_C( 132), UINT8_C( 181), UINT8_C(  10)),
      simde_x_mm512_set_epu8(UINT8_C(   0), UINT8_C(   0), UINT8_C( 145), UINT8_C( 168),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C( 151), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C( 189), UINT8_C(   0), UINT8_C( 160), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C( 211), UINT8_C(   0), UINT8_C( 133),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C( 172), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 255), UINT8_C( 255), UINT8_C( 201), UINT8_C( 207),
                             UINT8_C( 255), UINT8_C( 189), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C( 141), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C(   0), UINT8_C(   0), UINT8_C(   0), UINT8_C( 255),
                             UINT8_C( 255), UINT8_C(   0), UINT8_C(   0), UINT8_C(   0),
                             UINT8_C( 222), UINT8_C( 200), UINT8_C(   0), UINT8_C(  74)) },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde__m512i r = simde_mm512_maskz_adds_epu8(test_vec[i].k, test_vec[i].a, test_vec[i].b);
    simde_assert_m512i_u8(r, ==, test_vec[i].r);
  }

  return 0;
}

static int
test_simde_mm512_adds_epu16(SIMDE_MUNIT_TEST_ARGS) {
  const struct {
    simde__m512i a;
    simde__m512i b;
    simde__m512i r;
  } test_vec[8] = {
    { simde_x_mm512_set_epu16(UINT16_C( 57245), UINT16_C( 31803), UINT16_C(  9053), UINT16_C( 21282),
                              UINT16_C( 45515), UINT16_C( 57894), UINT16_C( 50445), UINT16_C( 50583),
                              UINT16_C( 54723), UINT16_C( 52144), UINT16_C( 13347), UINT16_C( 57624),
                              UINT16_C( 20975), UINT16_C( 65317), UINT16_C( 16493), UINT16_C( 47193),
                              UINT16_C(  8805), UINT16_C( 17012), UINT16_C( 15383), UINT16_C(  5484),
                              UINT16_C( 64480), UINT16_C( 10898), UINT16_C( 37488), UINT16_C(  8763),
                              UINT16_C( 45480), UINT16_C(  3307), UINT16_C(  9193), UINT16_C( 26229),
                              UINT16_C( 20008), UINT16_C( 59713), UINT16_C( 53564), UINT16_C( 62675)),
      simde_x_mm512_set_epu16(UINT16_C( 56619), UINT16_C( 61703), UINT16_C(  3086), UINT16_C( 41224),
                              UINT16_C(  8421), UINT16_C( 52766), UINT16_C(  7424), UINT16_C( 48822),
                              UINT16_C( 41975), UINT16_C( 22918), UINT16_C( 59915), UINT16_C( 26727),
                              UINT16_C( 53323), UINT16_C( 34707), UINT16_C( 14572), UINT16_C(   716),
                              UINT16_C( 56087), UINT16_C(  9094), UINT16_C( 20814), UINT16_C( 56962),
                              UINT16_C( 14110), UINT16_C( 52082), UINT16_C(  8468), UINT16_C( 11854),
                              UINT16_C(  1576), UINT16_C( 12690), UINT16_C( 32737), UINT16_C( 51663),
                              UINT16_C( 37115), UINT16_C( 18115), UINT16_C( 50682), UINT16_C(  1653)),
      simde_x_mm512_set_epu16(UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 12139), UINT16_C( 62506),
                              UINT16_C( 53936), UINT16_C( 65535), UINT16_C( 57869), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 31065), UINT16_C( 47909),
                              UINT16_C( 64892), UINT16_C( 26106), UINT16_C( 36197), UINT16_C( 62446),
                              UINT16_C( 65535), UINT16_C( 62980), UINT16_C( 45956), UINT16_C( 20617),
                              UINT16_C( 47056), UINT16_C( 15997), UINT16_C( 41930), UINT16_C( 65535),
                              UINT16_C( 57123), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 64328)) },
    { simde_x_mm512_set_epu16(UINT16_C(  1128), UINT16_C( 14143), UINT16_C( 19763), UINT16_C( 47819),
                              UINT16_C( 62972), UINT16_C( 13428), UINT16_C( 18537), UINT16_C( 38297),
                              UINT16_C( 21721), UINT16_C( 58861), UINT16_C( 42577), UINT16_C( 39379),
                              UINT16_C( 55643), UINT16_C( 20439), UINT16_C( 34514), UINT16_C( 49721),
                              UINT16_C( 18526), UINT16_C( 46886), UINT16_C( 20377), UINT16_C( 31658),
                              UINT16_C( 32537), UINT16_C( 50044), UINT16_C( 28503), UINT16_C(  5895),
                              UINT16_C(  1666), UINT16_C( 50137), UINT16_C( 30976), UINT16_C(  4047),
                              UINT16_C( 24589), UINT16_C( 29183), UINT16_C( 13128), UINT16_C(  3541)),
      simde_x_mm512_set_epu16(UINT16_C( 38521), UINT16_C( 64382), UINT16_C( 35873), UINT16_C( 42497),
                              UINT16_C( 46178), UINT16_C( 38904), UINT16_C( 15657), UINT16_C(  6453),
                              UINT16_C( 15377), UINT16_C( 45418), UINT16_C( 38208), UINT16_C( 44948),
                              UINT16_C( 17985), UINT16_C( 28923), UINT16_C( 11094), UINT16_C( 61254),
                              UINT16_C( 41028), UINT16_C(  4939), UINT16_C( 61438), UINT16_C( 34821),
                              UINT16_C(  9578), UINT16_C( 46329), UINT16_C( 53213), UINT16_C( 42297),
                              UINT16_C( 42846), UINT16_C( 12973), UINT16_C( 32628), UINT16_C( 10992),
                              UINT16_C( 56871), UINT16_C( 37695), UINT16_C( 16317), UINT16_C(  4356)),
      simde_x_mm512_set_epu16(UINT16_C( 39649), UINT16_C( 65535), UINT16_C( 55636), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 52332), UINT16_C( 34194), UINT16_C( 44750),
                              UINT16_C( 37098), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 49362), UINT16_C( 45608), UINT16_C( 65535),
                              UINT16_C( 59554), UINT16_C( 51825), UINT16_C( 65535), UINT16_C( 65535),
                              UINT16_C( 42115), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 48192),
                              UINT16_C( 44512), UINT16_C( 63110), UINT16_C( 63604), UINT16_C( 15039),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 29445), UINT16_C(  7897)) },
    { simde_x_mm512_set_epu16(UINT16_C( 14747), UINT16_C( 30570), UINT16_C( 56275), UINT16_C( 58793),
                              UINT16_C( 48636), UINT16_C( 11396), UINT16_C( 12142), UINT16_C( 25883),
                              UINT16_C( 48137), UINT16_C( 31445), UINT16_C( 15524), UINT16_C( 49322),
                              UINT16_C(  6761), UINT16_C( 42681), UINT16_C(  8586), UINT16_C( 53309),
                              UINT16_C( 48898), UINT16_C( 23142), UINT16_C( 17912), UINT16_C( 20578),
                              UINT16_C( 42157), UINT16_C( 25705), UINT16_C( 39154), UINT16_C( 32521),
                              UINT16_C(  7302), UINT16_C( 65263), UINT16_C(  7623), UINT16_C( 47267),
                              UINT16_C( 41612), UINT16_C(  7723), UINT16_C( 51815), UINT16_C( 23273)),
      simde_x_mm512_set_epu16(UINT16_C( 29783), UINT16_C( 35133), UINT16_C( 18722), UINT16_C( 24788),
                              UINT16_C(  4507), UINT16_C( 64908), UINT16_C( 18120), UINT16_C( 53792),
                              UINT16_C( 40447), UINT16_C(  2013), UINT16_C( 19329), UINT16_C( 18474),
                              UINT16_C( 45067), UINT16_C( 37105), UINT16_C( 40003), UINT16_C( 11523),
                              UINT16_C( 28865), UINT16_C(  9988), UINT16_C( 16394), UINT16_C( 60605),
                              UINT16_C( 29530), UINT16_C(   612), UINT16_C( 21547), UINT16_C( 12463),
                              UINT16_C( 46586), UINT16_C(  6619), UINT16_C( 39845), UINT16_C(  4328),
                              UINT16_C( 31818), UINT16_C( 16334), UINT16_C( 57400), UINT16_C( 58095)),
      simde_x_mm512_set_epu16(UINT16_C( 44530), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
                              UINT16_C( 53143), UINT16_C( 65535), UINT16_C( 30262), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 33458), UINT16_C( 34853), UINT16_C( 65535),
                              UINT16_C( 51828), UINT16_C( 65535), UINT16_C( 48589), UINT16_C( 64832),
                              UINT16_C( 65535), UINT16_C( 33130), UINT16_C( 34306), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 26317), UINT16_C( 60701), UINT16_C( 44984),
                              UINT16_C( 53888), UINT16_C( 65535), UINT16_C( 47468), UINT16_C( 51595),
                              UINT16_C( 65535), UINT16_C( 24057), UINT16_C( 65535), UINT16_C( 65535)) },
    { simde_x_mm512_set_epu16(UINT16_C( 30682), UINT16_C( 30851), UINT16_C(  8660), UINT16_C( 19219),
                              UINT16_C( 10963), UINT16_C(   474), UINT16_C( 23728), UINT16_C( 46528),
                              UINT16_C( 63120), UINT16_C( 45881), UINT16_C( 63086), UINT16_C( 25197),
                              UINT16_C(  2704), UINT16_C(  4513), UINT16_C( 59294), UINT16_C( 60752),
                              UINT16_C( 50954), UINT16_C( 23266), UINT16_C( 27902), UINT16_C(  8814),
                              UINT16_C(  4863), UINT16_C(  1260), UINT16_C( 11681), UINT16_C( 46962),
                              UINT16_C( 62057), UINT16_C(  1167), UINT16_C( 44133), UINT16_C( 29723),
                              UINT16_C( 20503), UINT16_C( 47951), UINT16_C(  6645), UINT16_C( 27511)),
      simde_x_mm512_set_epu16(UINT16_C( 15286), UINT16_C(  5686), UINT16_C( 62529), UINT16_C( 52414),
                              UINT16_C( 64942), UINT16_C( 55157), UINT16_C(  1921), UINT16_C(   414),
                              UINT16_C( 57075), UINT16_C( 38949), UINT16_C( 49837), UINT16_C( 16574),
                              UINT16_C( 63519), UINT16_C( 21815), UINT16_C( 16534), UINT16_C(  5264),
                              UINT16_C( 40611), UINT16_C(  7582), UINT16_C( 27508), UINT16_C( 40060),
                              UINT16_C( 17332), UINT16_C( 48486), UINT16_C( 46457), UINT16_C(  3074),
                              UINT16_C( 49520), UINT16_C( 35694), UINT16_C( 14820), UINT16_C( 26739),
                              UINT16_C( 52931), UINT16_C( 30426), UINT16_C( 34639), UINT16_C( 60126)),
      simde_x_mm512_set_epu16(UINT16_C( 45968), UINT16_C( 36537), UINT16_C( 65535), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 55631), UINT16_C( 25649), UINT16_C( 46942),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 41771),
                              UINT16_C( 65535), UINT16_C( 26328), UINT16_C( 65535), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 30848), UINT16_C( 55410), UINT16_C( 48874),
                              UINT16_C( 22195), UINT16_C( 49746), UINT16_C( 58138), UINT16_C( 50036),
                              UINT16_C( 65535), UINT16_C( 36861), UINT16_C( 58953), UINT16_C( 56462),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 41284), UINT16_C( 65535)) },
    { simde_x_mm512_set_epu16(UINT16_C( 20277), UINT16_C(  2901), UINT16_C(  9119), UINT16_C( 39166),
                              UINT16_C( 42714), UINT16_C( 26596), UINT16_C( 65466), UINT16_C( 41724),
                              UINT16_C( 43509), UINT16_C( 36161), UINT16_C( 14559), UINT16_C( 39814),
                              UINT16_C( 39598), UINT16_C( 35810), UINT16_C( 32670), UINT16_C(  2206),
                              UINT16_C( 28889), UINT16_C( 41636), UINT16_C( 48990), UINT16_C( 37294),
                              UINT16_C( 39242), UINT16_C( 39778), UINT16_C(  6979), UINT16_C( 54232),
                              UINT16_C( 47738), UINT16_C( 57923), UINT16_C( 37900), UINT16_C( 45798),
                              UINT16_C( 44781), UINT16_C( 27960), UINT16_C(  1998), UINT16_C( 61149)),
      simde_x_mm512_set_epu16(UINT16_C( 20730), UINT16_C( 18080), UINT16_C( 51364), UINT16_C( 27968),
                              UINT16_C( 47873), UINT16_C( 51993), UINT16_C( 18829), UINT16_C( 15054),
                              UINT16_C( 50771), UINT16_C( 37023), UINT16_C( 39205), UINT16_C( 18252),
                              UINT16_C( 53613), UINT16_C( 36736), UINT16_C( 53958), UINT16_C( 13137),
                              UINT16_C( 43763), UINT16_C( 19789), UINT16_C(  2934), UINT16_C( 22986),
                              UINT16_C( 46964), UINT16_C( 64986), UINT16_C( 13395), UINT16_C( 61287),
                              UINT16_C( 61677), UINT16_C( 22301), UINT16_C( 41322), UINT16_C( 35063),
                              UINT16_C( 22663), UINT16_C( 28062), UINT16_C( 45351), UINT16_C( 21097)),
      simde_x_mm512_set_epu16(UINT16_C( 41007), UINT16_C( 20981), UINT16_C( 60483), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 56778),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 53764), UINT16_C( 58066),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 15343),
                              UINT16_C( 65535), UINT16_C( 61425), UINT16_C( 51924), UINT16_C( 60280),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 20374), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 56022), UINT16_C( 47349), UINT16_C( 65535)) },
    { simde_x_mm512_set_epu16(UINT16_C( 29192), UINT16_C(  8654), UINT16_C( 22850), UINT16_C( 62764),
                              UINT16_C( 24193), UINT16_C( 41054), UINT16_C( 47201), UINT16_C( 29473),
                              UINT16_C(  7514), UINT16_C( 21604), UINT16_C( 55170), UINT16_C( 17089),
                              UINT16_C( 58910), UINT16_C( 18576), UINT16_C( 50942), UINT16_C( 19375),
                              UINT16_C( 32394), UINT16_C(  6670), UINT16_C( 34291), UINT16_C( 10597),
                              UINT16_C( 63848), UINT16_C( 24622), UINT16_C( 55141), UINT16_C( 33399),
                              UINT16_C( 17676), UINT16_C( 53111), UINT16_C( 57678), UINT16_C( 53869),
                              UINT16_C(  1069), UINT16_C( 35377), UINT16_C( 20392), UINT16_C(  6033)),
      simde_x_mm512_set_epu16(UINT16_C( 30110), UINT16_C(  5765), UINT16_C( 21533), UINT16_C( 32154),
                              UINT16_C( 47788), UINT16_C(  4708), UINT16_C( 49450), UINT16_C( 15569),
                              UINT16_C( 11433), UINT16_C( 48528), UINT16_C( 18868), UINT16_C( 49914),
                              UINT16_C( 29591), UINT16_C( 10234), UINT16_C( 18676), UINT16_C( 18833),
                              UINT16_C( 53298), UINT16_C( 44056), UINT16_C(   163), UINT16_C( 14043),
                              UINT16_C( 52308), UINT16_C( 55462), UINT16_C(  1379), UINT16_C( 56593),
                              UINT16_C( 40649), UINT16_C( 10209), UINT16_C( 62181), UINT16_C(  6865),
                              UINT16_C( 33659), UINT16_C( 12643), UINT16_C( 58853), UINT16_C( 27590)),
      simde_x_mm512_set_epu16(UINT16_C( 59302), UINT16_C( 14419), UINT16_C( 44383), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 45762), UINT16_C( 65535), UINT16_C( 45042),
                              UINT16_C( 18947), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 28810), UINT16_C( 65535), UINT16_C( 38208),
                              UINT16_C( 65535), UINT16_C( 50726), UINT16_C( 34454), UINT16_C( 24640),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 56520), UINT16_C( 65535),
                              UINT16_C( 58325), UINT16_C( 63320), UINT16_C( 65535), UINT16_C( 60734),
                              UINT16_C( 34728), UINT16_C( 48020), UINT16_C( 65535), UINT16_C( 33623)) },
    { simde_x_mm512_set_epu16(UINT16_C( 54408), UINT16_C( 44486), UINT16_C( 24517), UINT16_C( 51207),
                              UINT16_C(  2791), UINT16_C( 45592), UINT16_C( 48586), UINT16_C( 36784),
                              UINT16_C( 53369), UINT16_C( 43811), UINT16_C( 65046), UINT16_C( 44235),
                              UINT16_C( 48681), UINT16_C( 21401), UINT16_C( 55417), UINT16_C(  5581),
                              UINT16_C( 56410), UINT16_C( 42092), UINT16_C( 49678), UINT16_C( 22777),
                              UINT16_C( 15839), UINT16_C( 59069), UINT16_C(  3836), UINT16_C( 55877),
                              UINT16_C( 35316), UINT16_C( 40611), UINT16_C( 30925), UINT16_C( 38925),
                              UINT16_C( 44290), UINT16_C( 48844), UINT16_C( 41388), UINT16_C( 24135)),
      simde_x_mm512_set_epu16(UINT16_C(  7663), UINT16_C(  4305), UINT16_C( 48670), UINT16_C( 39779),
                              UINT16_C(  2052), UINT16_C( 40026), UINT16_C( 47264), UINT16_C(  7297),
                              UINT16_C( 11022), UINT16_C( 64822), UINT16_C( 63292), UINT16_C( 56921),
                              UINT16_C(  8160), UINT16_C( 61766), UINT16_C( 22014), UINT16_C( 41597),
                              UINT16_C( 60919), UINT16_C( 45399), UINT16_C( 45462), UINT16_C( 35135),
                              UINT16_C( 13486), UINT16_C( 42127), UINT16_C(  6466), UINT16_C(  5931),
                              UINT16_C( 30448), UINT16_C( 27493), UINT16_C( 24921), UINT16_C( 23842),
                              UINT16_C( 21170), UINT16_C( 62954), UINT16_C(  7914), UINT16_C( 35527)),
      simde_x_mm512_set_epu16(UINT16_C( 62071), UINT16_C( 48791), UINT16_C( 65535), UINT16_C( 65535),
                              UINT16_C(  4843), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 44081),
                              UINT16_C( 64391), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
                              UINT16_C( 56841), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 47178),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 57912),
                              UINT16_C( 29325), UINT16_C( 65535), UINT16_C( 10302), UINT16_C( 61808),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 55846), UINT16_C( 62767),
                              UINT16_C( 65460), UINT16_C( 65535), UINT16_C( 49302), UINT16_C( 59662)) },
    { simde_x_mm512_set_epu16(UINT16_C( 61865), UINT16_C( 23426), UINT16_C(  1768), UINT16_C( 58636),
                              UINT16_C( 57533), UINT16_C( 19108), UINT16_C( 59802), UINT16_C( 30792),
                              UINT16_C( 61240), UINT16_C(  6209), UINT16_C( 32476), UINT16_C( 14300),
                              UINT16_C(  7420), UINT16_C(  1985), UINT16_C( 25770), UINT16_C( 58800),
                              UINT16_C( 51482), UINT16_C( 20894), UINT16_C(   680), UINT16_C( 29487),
                              UINT16_C( 45202), UINT16_C( 20181), UINT16_C( 14712), UINT16_C( 17612),
                              UINT16_C( 16683), UINT16_C(  1453), UINT16_C( 15990), UINT16_C( 36509),
                              UINT16_C( 51737), UINT16_C( 56324), UINT16_C( 34493), UINT16_C( 17761)),
      simde_x_mm512_set_epu16(UINT16_C( 37550), UINT16_C( 51250), UINT16_C( 42874), UINT16_C(  8384),
                              UINT16_C( 13698), UINT16_C( 33689), UINT16_C( 64372), UINT16_C( 20393),
                              UINT16_C( 17692), UINT16_C( 65383), UINT16_C(   545), UINT16_C( 27220),
                              UINT16_C( 18321), UINT16_C( 26532), UINT16_C( 40835), UINT16_C( 14036),
                              UINT16_C(  3666), UINT16_C(  2040), UINT16_C( 61839), UINT16_C( 38748),
                              UINT16_C( 62699), UINT16_C( 55831), UINT16_C( 23293), UINT16_C( 13208),
                              UINT16_C( 60975), UINT16_C( 12632), UINT16_C( 13392), UINT16_C( 63703),
                              UINT16_C( 41286), UINT16_C(  6117), UINT16_C( 32645), UINT16_C( 56152)),
      simde_x_mm512_set_epu16(UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 44642), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 52797), UINT16_C( 65535), UINT16_C( 51185),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 33021), UINT16_C( 41520),
                              UINT16_C( 25741), UINT16_C( 28517), UINT16_C( 65535), UINT16_C( 65535),
                              UINT16_C( 55148), UINT16_C( 22934), UINT16_C( 62519), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 38005), UINT16_C( 30820),
                              UINT16_C( 65535), UINT16_C( 14085), UINT16_C( 29382), UINT16_C( 65535),
                              UINT16_C( 65535), UINT16_C( 62441), UINT16_C( 65535), UINT16_C( 65535)) }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
    simde__m512i r = simde_mm512_adds_epu16(test_vec[i].a, test_vec[i].b);
    simde_assert_m512i_u16(r, ==, test_vec[i].r);
  }

  return 0;
}

static int
test_simde_mm512_mask_adds_epu16 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const int16_t src[32];
    const simde__mmask32 k;
    const uint16_t a[32];
    const uint16_t b[32];
    const uint16_t r[32];
  } test_vec[] = {
    { { -INT16_C( 25480),  INT16_C( 16389),  INT16_C( 16810),  INT16_C( 20465), -INT16_C( 11763),  INT16_C(  1143),  INT16_C( 11613),  INT16_C(  5547),
        -INT16_C(   217),  INT16_C(  4795),  INT16_C(  5277), -INT16_C( 31526), -INT16_C(  1895),  INT16_C(  7976), -INT16_C(  7252),  INT16_C(  9466),
        -INT16_C(   129),  INT16_C( 10853),  INT16_C( 22080),  INT16_C( 19833), -INT16_C(  4056), -INT16_C( 31151), -INT16_C(   994),  INT16_C( 17819),
         INT16_C( 22267), -INT16_C( 26281),  INT16_C( 12651),  INT16_C(  1053),  INT16_C( 17962), -INT16_C( 10716),  INT16_C(  7721), -INT16_C( 22278) },
      UINT32_C(1590845213),
      { UINT16_C(19382), UINT16_C(57003), UINT16_C(64828), UINT16_C(23140), UINT16_C(65529), UINT16_C(62879), UINT16_C(63062), UINT16_C(49550),
        UINT16_C(43815), UINT16_C(20933), UINT16_C(59889), UINT16_C( 6695), UINT16_C( 8711), UINT16_C( 9667), UINT16_C(38273), UINT16_C(14211),
        UINT16_C(12001), UINT16_C( 7446), UINT16_C(31275), UINT16_C( 9591), UINT16_C( 5754), UINT16_C(53274), UINT16_C(43020), UINT16_C(13201),
        UINT16_C(22099), UINT16_C(17797), UINT16_C(44096), UINT16_C(18271), UINT16_C( 8910), UINT16_C(20588), UINT16_C(61368), UINT16_C(39303) },
      { UINT16_C(40222), UINT16_C(18870), UINT16_C(11544), UINT16_C(37486), UINT16_C(34883), UINT16_C(20322), UINT16_C(62256), UINT16_C(33922),
        UINT16_C( 1865), UINT16_C(35273), UINT16_C(10420), UINT16_C(33489), UINT16_C(15691), UINT16_C(  978), UINT16_C(23085), UINT16_C(19356),
        UINT16_C(21239), UINT16_C( 3988), UINT16_C(  895), UINT16_C(49825), UINT16_C(  907), UINT16_C(48145), UINT16_C(37878), UINT16_C(16448),
        UINT16_C( 2459), UINT16_C(20425), UINT16_C(39473), UINT16_C(31953), UINT16_C(42200), UINT16_C( 1407), UINT16_C( 7166), UINT16_C(62800) },
      { UINT16_C(59604), UINT16_C(16389),      UINT16_MAX, UINT16_C(60626),      UINT16_MAX, UINT16_C( 1143), UINT16_C(11613), UINT16_C( 5547),
        UINT16_C(45680), UINT16_C(56206),      UINT16_MAX, UINT16_C(40184), UINT16_C(24402), UINT16_C( 7976), UINT16_C(61358), UINT16_C( 9466),
        UINT16_C(65407), UINT16_C(11434), UINT16_C(22080), UINT16_C(19833), UINT16_C( 6661), UINT16_C(34385),      UINT16_MAX, UINT16_C(29649),
        UINT16_C(22267), UINT16_C(38222),      UINT16_MAX, UINT16_C(50224), UINT16_C(51110), UINT16_C(54820),      UINT16_MAX, UINT16_C(43258) } },
    { { -INT16_C(  7059), -INT16_C(  5115), -INT16_C( 22809),  INT16_C( 29614), -INT16_C( 16470), -INT16_C( 24529),  INT16_C( 28499), -INT16_C(  4384),
        -INT16_C( 21896), -INT16_C( 22211),  INT16_C(  3652),  INT16_C(  7206), -INT16_C( 23118), -INT16_C( 20447),  INT16_C( 29121),  INT16_C( 11942),
        -INT16_C( 21674),  INT16_C( 15643), -INT16_C( 13999), -INT16_C(  1104), -INT16_C(  8311), -INT16_C(  9060),  INT16_C( 31822), -INT16_C( 14646),
         INT16_C(  1830),  INT16_C( 27504), -INT16_C( 27115), -INT16_C( 14201), -INT16_C( 22213), -INT16_C(   904),  INT16_C(  7706),  INT16_C( 28715) },
      UINT32_C( 464406217),
      { UINT16_C(24079), UINT16_C(38934), UINT16_C(45630), UINT16_C(35956), UINT16_C(15919), UINT16_C(21843), UINT16_C(49989), UINT16_C(23488),
        UINT16_C(18521), UINT16_C(37923), UINT16_C(39921), UINT16_C( 2961), UINT16_C(48314), UINT16_C(33660), UINT16_C(10754), UINT16_C( 4510),
        UINT16_C(46472), UINT16_C(50858), UINT16_C( 7783), UINT16_C(38483), UINT16_C(42589), UINT16_C(41708), UINT16_C(44137), UINT16_C(49917),
        UINT16_C( 8436), UINT16_C(58710), UINT16_C(59324), UINT16_C(30449), UINT16_C(28067), UINT16_C(42489), UINT16_C(39063), UINT16_C( 8119) },
      { UINT16_C(24909), UINT16_C(46310), UINT16_C(14719), UINT16_C(56395), UINT16_C(14303), UINT16_C(18559), UINT16_C(31971), UINT16_C(55306),
        UINT16_C(24733), UINT16_C(22973), UINT16_C(44616), UINT16_C(60367), UINT16_C(51227), UINT16_C(45713), UINT16_C(18528), UINT16_C(44498),
        UINT16_C(47273), UINT16_C(10338), UINT16_C(44529), UINT16_C(53253), UINT16_C(34020), UINT16_C(50968), UINT16_C( 8704), UINT16_C(40351),
        UINT16_C(23938), UINT16_C(51958), UINT16_C(50443), UINT16_C(10166), UINT16_C(18318), UINT16_C(61145), UINT16_C(43919), UINT16_C(14492) },
      { UINT16_C(48988), UINT16_C(60421), UINT16_C(42727),      UINT16_MAX, UINT16_C(49066), UINT16_C(41007),      UINT16_MAX,      UINT16_MAX,
        UINT16_C(43640), UINT16_C(60896),      UINT16_MAX, UINT16_C( 7206), UINT16_C(42418), UINT16_C(45089), UINT16_C(29282), UINT16_C(11942),
        UINT16_C(43862), UINT16_C(61196), UINT16_C(52312),      UINT16_MAX, UINT16_C(57225),      UINT16_MAX, UINT16_C(31822),      UINT16_MAX,
        UINT16_C(32374),      UINT16_MAX, UINT16_C(38421), UINT16_C(40615), UINT16_C(46385), UINT16_C(64632), UINT16_C( 7706), UINT16_C(28715) } },
    { { -INT16_C(   413),  INT16_C( 21600),  INT16_C( 26027), -INT16_C( 28892),  INT16_C( 15593), -INT16_C(  5546), -INT16_C(  2466), -INT16_C(  7801),
         INT16_C( 32339),  INT16_C( 24235),  INT16_C( 24899), -INT16_C( 11899),  INT16_C( 24488),  INT16_C( 14272),  INT16_C( 23562),  INT16_C( 28271),
        -INT16_C( 12198),  INT16_C(  1474), -INT16_C(  6347),  INT16_C(  8084), -INT16_C(  5597), -INT16_C( 32247), -INT16_C( 28448),  INT16_C( 13155),
         INT16_C(  3598),  INT16_C( 21138),  INT16_C(  6000),  INT16_C(  6179), -INT16_C(  7306), -INT16_C( 32432), -INT16_C( 16577), -INT16_C( 26129) },
      UINT32_C(3315511695),
      { UINT16_C(12952), UINT16_C(48356), UINT16_C(60701), UINT16_C(64830), UINT16_C(41341), UINT16_C(35889), UINT16_C(50095), UINT16_C( 8158),
        UINT16_C(  474), UINT16_C(20792), UINT16_C(35045), UINT16_C( 9426), UINT16_C(49479), UINT16_C(55230), UINT16_C(23666), UINT16_C( 2972),
        UINT16_C(32911), UINT16_C(44231), UINT16_C( 1389), UINT16_C(60073), UINT16_C(55974), UINT16_C(21878), UINT16_C(21661), UINT16_C(30837),
        UINT16_C(44374), UINT16_C(15305), UINT16_C(39733), UINT16_C(31839), UINT16_C( 7516), UINT16_C(52819), UINT16_C(61306), UINT16_C( 2521) },
      { UINT16_C(41071), UINT16_C(56501), UINT16_C(24229), UINT16_C(19399), UINT16_C(15673), UINT16_C(54945), UINT16_C( 5778), UINT16_C(59470),
        UINT16_C( 6083), UINT16_C(63523), UINT16_C(33458), UINT16_C( 3700), UINT16_C(51360), UINT16_C( 6877), UINT16_C(46775), UINT16_C(10019),
        UINT16_C(55383), UINT16_C(64515), UINT16_C(51766), UINT16_C(28488), UINT16_C(59656), UINT16_C(39494), UINT16_C(38143), UINT16_C(49794),
        UINT16_C(42412), UINT16_C(24250), UINT16_C(11815), UINT16_C(51053), UINT16_C(19190), UINT16_C(44769), UINT16_C( 1024), UINT16_C(22485) },
      { UINT16_C(54023),      UINT16_MAX,      UINT16_MAX,      UINT16_MAX, UINT16_C(15593), UINT16_C(59990), UINT16_C(63070),      UINT16_MAX,
        UINT16_C( 6557), UINT16_C(24235), UINT16_C(24899), UINT16_C(53637),      UINT16_MAX, UINT16_C(62107), UINT16_C(23562), UINT16_C(12991),
        UINT16_C(53338),      UINT16_MAX, UINT16_C(53155),      UINT16_MAX,      UINT16_MAX, UINT16_C(33289), UINT16_C(37088),      UINT16_MAX,
             UINT16_MAX, UINT16_C(21138), UINT16_C(51548), UINT16_C( 6179), UINT16_C(58230), UINT16_C(33104), UINT16_C(62330), UINT16_C(25006) } },
    { { -INT16_C( 10020),  INT16_C(  4948), -INT16_C( 25437), -INT16_C( 21630), -INT16_C( 14203), -INT16_C( 31675), -INT16_C( 14499),  INT16_C(  2374),
         INT16_C(   108), -INT16_C( 27801), -INT16_C( 11218),  INT16_C(  9563),  INT16_C( 15390),  INT16_C(  8147), -INT16_C( 22463),  INT16_C(  7542),
        -INT16_C( 13696),  INT16_C(  9008), -INT16_C( 19610), -INT16_C(  5170),  INT16_C(  4987), -INT16_C( 10129), -INT16_C( 18982),  INT16_C( 18145),
         INT16_C( 18869), -INT16_C(  6950),  INT16_C( 13597),  INT16_C( 15369), -INT16_C(  9103), -INT16_C( 19877), -INT16_C( 11900),  INT16_C(  1232) },
      UINT32_C(  36176028),
      { UINT16_C(63155), UINT16_C(12270), UINT16_C(23818), UINT16_C(58375), UINT16_C(59667), UINT16_C(51243), UINT16_C( 1330), UINT16_C(20396),
        UINT16_C(46394), UINT16_C(43915), UINT16_C(59025), UINT16_C( 5470), UINT16_C(11960), UINT16_C(21530), UINT16_C(16942), UINT16_C(57942),
        UINT16_C(17464), UINT16_C(16913), UINT16_C( 6306), UINT16_C(46375), UINT16_C(20993), UINT16_C(13181), UINT16_C(10839), UINT16_C(37251),
        UINT16_C( 3807), UINT16_C(28988), UINT16_C(39669), UINT16_C(44422), UINT16_C(41160), UINT16_C(63233), UINT16_C(22498), UINT16_C( 7129) },
      { UINT16_C(60060), UINT16_C(15965), UINT16_C(33794), UINT16_C( 1267), UINT16_C(28886), UINT16_C(11575), UINT16_C(47770), UINT16_C(31422),
        UINT16_C(64457), UINT16_C(48875), UINT16_C(29077), UINT16_C(24171), UINT16_C(27666), UINT16_C(62549), UINT16_C(11971), UINT16_C(24335),
        UINT16_C(27928), UINT16_C( 6813), UINT16_C(37105), UINT16_C(51230), UINT16_C(22017), UINT16_C(39925), UINT16_C(46096), UINT16_C(55573),
        UINT16_C(  175), UINT16_C(17559), UINT16_C(  626), UINT16_C(33954), UINT16_C(63342), UINT16_C(12920), UINT16_C(34853), UINT16_C(15761) },
      { UINT16_C(55516), UINT16_C( 4948), UINT16_C(57612), UINT16_C(59642),      UINT16_MAX, UINT16_C(33861), UINT16_C(51037), UINT16_C(51818),
        UINT16_C(  108), UINT16_C(37735), UINT16_C(54318), UINT16_C( 9563), UINT16_C(15390), UINT16_C( 8147), UINT16_C(43073), UINT16_C( 7542),
        UINT16_C(51840), UINT16_C( 9008), UINT16_C(45926),      UINT16_MAX, UINT16_C( 4987), UINT16_C(53106), UINT16_C(46554), UINT16_C(18145),
        UINT16_C(18869), UINT16_C(46547), UINT16_C(13597), UINT16_C(15369), UINT16_C(56433), UINT16_C(45659), UINT16_C(53636), UINT16_C( 1232) } },
    { {  INT16_C( 12277), -INT16_C(  6568),  INT16_C( 30399), -INT16_C( 16210), -INT16_C( 23348), -INT16_C(  8868),  INT16_C( 29016),  INT16_C(  1974),
         INT16_C( 20082), -INT16_C(  7093), -INT16_C(  4528), -INT16_C( 16536), -INT16_C(  7963),  INT16_C(  3057), -INT16_C( 32152),  INT16_C( 23880),
        -INT16_C( 24399),  INT16_C( 28996), -INT16_C(  3561), -INT16_C(  7375), -INT16_C( 29290), -INT16_C(  4416),  INT16_C( 30719),  INT16_C( 29173),
         INT16_C( 16837),  INT16_C(  5461), -INT16_C( 17105),  INT16_C(  5332), -INT16_C( 14947),  INT16_C(  1567),  INT16_C( 26696), -INT16_C(  1693) },
      UINT32_C( 527083272),
      { UINT16_C(40090), UINT16_C(12291), UINT16_C(49961), UINT16_C(10271), UINT16_C( 5178), UINT16_C(65433), UINT16_C(61013), UINT16_C(33813),
        UINT16_C(59819), UINT16_C(18841), UINT16_C(47279), UINT16_C(63311), UINT16_C(45600), UINT16_C(10736), UINT16_C(23386), UINT16_C(62536),
        UINT16_C(19447), UINT16_C( 8228), UINT16_C(17167), UINT16_C(18761), UINT16_C(57944), UINT16_C(44361), UINT16_C(24273), UINT16_C(31794),
        UINT16_C(52039), UINT16_C(63173), UINT16_C( 5251), UINT16_C(42221), UINT16_C(57031), UINT16_C( 8653), UINT16_C( 5433), UINT16_C(12309) },
      { UINT16_C(14689), UINT16_C(28752), UINT16_C(39293), UINT16_C(54713), UINT16_C(  636), UINT16_C(19842), UINT16_C(46176), UINT16_C(43209),
        UINT16_C(36735), UINT16_C(  926), UINT16_C(36003), UINT16_C(27303), UINT16_C(29802), UINT16_C(41867), UINT16_C(41097), UINT16_C(60115),
        UINT16_C( 9178), UINT16_C(22362), UINT16_C( 5309), UINT16_C(14636), UINT16_C(44566), UINT16_C(30598), UINT16_C(20323), UINT16_C(57887),
        UINT16_C(48606), UINT16_C(33509), UINT16_C(35913), UINT16_C(46060), UINT16_C(30720), UINT16_C(35414), UINT16_C(10520), UINT16_C(62068) },
      { UINT16_C(12277), UINT16_C(58968), UINT16_C(30399), UINT16_C(64984), UINT16_C(42188), UINT16_C(56668), UINT16_C(29016), UINT16_C( 1974),
             UINT16_MAX, UINT16_C(19767),      UINT16_MAX, UINT16_C(49000), UINT16_C(57573), UINT16_C(52603), UINT16_C(33384),      UINT16_MAX,
        UINT16_C(41137), UINT16_C(30590), UINT16_C(61975), UINT16_C(33397), UINT16_C(36246),      UINT16_MAX, UINT16_C(44596), UINT16_C(29173),
             UINT16_MAX,      UINT16_MAX, UINT16_C(41164),      UINT16_MAX,      UINT16_MAX, UINT16_C( 1567), UINT16_C(26696), UINT16_C(63843) } },
    { { -INT16_C( 12467),  INT16_C(  2633),  INT16_C( 30179), -INT16_C(  1725), -INT16_C( 14044), -INT16_C( 30864), -INT16_C( 28904), -INT16_C(  2199),
         INT16_C( 20301), -INT16_C( 27015),  INT16_C( 26075), -INT16_C(  9142), -INT16_C( 24355), -INT16_C(  2458), -INT16_C(  9526),  INT16_C(  6120),
         INT16_C( 12969), -INT16_C( 29663),  INT16_C( 25767), -INT16_C( 13434), -INT16_C(  2515),  INT16_C( 17746), -INT16_C( 17274), -INT16_C( 11460),
        -INT16_C( 19189), -INT16_C(  6551), -INT16_C( 19685), -INT16_C(  1854),  INT16_C( 10324),  INT16_C(  7918), -INT16_C( 10493), -INT16_C( 21451) },
      UINT32_C(2956547593),
      { UINT16_C(49082), UINT16_C(59260), UINT16_C(52917), UINT16_C(15148), UINT16_C(27018), UINT16_C(38158), UINT16_C(30750), UINT16_C(14716),
        UINT16_C(15915), UINT16_C(32562), UINT16_C( 8295), UINT16_C(27293), UINT16_C(54007), UINT16_C(   22), UINT16_C(20264), UINT16_C(58033),
        UINT16_C(11534), UINT16_C(50377), UINT16_C(63227), UINT16_C(34559), UINT16_C( 3679), UINT16_C(32027), UINT16_C(38790), UINT16_C(45495),
        UINT16_C(59862), UINT16_C(15665), UINT16_C(52745), UINT16_C(  423), UINT16_C(48545), UINT16_C(51457), UINT16_C(45581), UINT16_C( 7084) },
      { UINT16_C(30175), UINT16_C(56287), UINT16_C(57195), UINT16_C(51809), UINT16_C(31981), UINT16_C(29512), UINT16_C(65300), UINT16_C(59940),
        UINT16_C(21992), UINT16_C(61735), UINT16_C(52772), UINT16_C(50674), UINT16_C(62603), UINT16_C(39054), UINT16_C(15014), UINT16_C(34484),
        UINT16_C(37808), UINT16_C( 7009), UINT16_C(49778), UINT16_C(24550), UINT16_C(11838), UINT16_C(21202), UINT16_C(63277), UINT16_C( 5436),
        UINT16_C(25420), UINT16_C(28678), UINT16_C(63793), UINT16_C(48437), UINT16_C(50413), UINT16_C(37717), UINT16_C( 2558), UINT16_C(44569) },
      {      UINT16_MAX, UINT16_C( 2633), UINT16_C(30179),      UINT16_MAX, UINT16_C(51492), UINT16_C(34672), UINT16_C(36632), UINT16_C(63337),
        UINT16_C(20301),      UINT16_MAX, UINT16_C(61067), UINT16_C(56394),      UINT16_MAX, UINT16_C(63078), UINT16_C(35278), UINT16_C( 6120),
        UINT16_C(49342), UINT16_C(35873), UINT16_C(25767), UINT16_C(59109), UINT16_C(15517), UINT16_C(53229), UINT16_C(48262), UINT16_C(54076),
        UINT16_C(46347), UINT16_C(58985), UINT16_C(45851), UINT16_C(63682),      UINT16_MAX,      UINT16_MAX, UINT16_C(55043), UINT16_C(51653) } },
    { {  INT16_C( 31389),  INT16_C(  4042), -INT16_C( 20420),  INT16_C( 31599),  INT16_C( 16862),  INT16_C(  3021),  INT16_C(  2616), -INT16_C( 31456),
         INT16_C(  9837), -INT16_C( 24587),  INT16_C( 11039),  INT16_C(  3164), -INT16_C( 19985), -INT16_C(  4704), -INT16_C( 17989),  INT16_C( 22684),
         INT16_C( 26164),  INT16_C( 28775), -INT16_C( 10730), -INT16_C(  2837), -INT16_C( 18152),  INT16_C( 20735),  INT16_C(  8131),  INT16_C( 12501),
        -INT16_C( 13499),  INT16_C( 26063),  INT16_C( 11254), -INT16_C(  6799),  INT16_C(  4573), -INT16_C( 26414),  INT16_C( 28363), -INT16_C(    16) },
      UINT32_C(3933165524),
      { UINT16_C(23342), UINT16_C(18142), UINT16_C(56596), UINT16_C(55190), UINT16_C(27900), UINT16_C(16903), UINT16_C(55095), UINT16_C(11687),
        UINT16_C( 6146), UINT16_C(57106), UINT16_C(58410), UINT16_C(62839), UINT16_C(26451), UINT16_C(10228), UINT16_C(25535), UINT16_C(60690),
        UINT16_C(61630), UINT16_C(53811), UINT16_C(51662), UINT16_C(51881), UINT16_C(45365), UINT16_C(27660), UINT16_C(45960), UINT16_C(35481),
        UINT16_C(43980), UINT16_C(63082), UINT16_C(57744), UINT16_C(58347), UINT16_C(57161), UINT16_C( 2058), UINT16_C( 7234), UINT16_C(  501) },
      { UINT16_C(10253), UINT16_C(56275), UINT16_C(32241), UINT16_C(10149), UINT16_C(45614), UINT16_C(46739), UINT16_C(11621), UINT16_C(12608),
        UINT16_C(43736), UINT16_C(26663), UINT16_C( 4748), UINT16_C(54603), UINT16_C(22257), UINT16_C(13533), UINT16_C(53874), UINT16_C(32565),
        UINT16_C( 2298), UINT16_C(60250), UINT16_C(  133), UINT16_C(45842), UINT16_C(42674), UINT16_C( 5993), UINT16_C(43731), UINT16_C(43849),
        UINT16_C(28756), UINT16_C(57364), UINT16_C(24451), UINT16_C(29877), UINT16_C(37557), UINT16_C(10408), UINT16_C(56676), UINT16_C(24231) },
      { UINT16_C(31389), UINT16_C( 4042),      UINT16_MAX, UINT16_C(31599),      UINT16_MAX, UINT16_C( 3021),      UINT16_MAX, UINT16_C(24295),
        UINT16_C(49882),      UINT16_MAX, UINT16_C(63158), UINT16_C( 3164), UINT16_C(48708), UINT16_C(60832),      UINT16_MAX, UINT16_C(22684),
        UINT16_C(63928),      UINT16_MAX, UINT16_C(51795),      UINT16_MAX, UINT16_C(47384), UINT16_C(33653),      UINT16_MAX, UINT16_C(12501),
        UINT16_C(52037),      UINT16_MAX, UINT16_C(11254),      UINT16_MAX, UINT16_C( 4573), UINT16_C(12466), UINT16_C(63910), UINT16_C(24732) } },
    { {  INT16_C(   742),  INT16_C( 27466),  INT16_C( 23554), -INT16_C( 19425), -INT16_C( 30718), -INT16_C( 10805),  INT16_C(  5170), -INT16_C( 30847),
        -INT16_C( 27259),  INT16_C(  2151),  INT16_C(  7668), -INT16_C( 21892),  INT16_C(  9647),  INT16_C(  5330),  INT16_C( 30978), -INT16_C(  6030),
        -INT16_C( 17285),  INT16_C( 32084),  INT16_C( 29465),  INT16_C(  6961), -INT16_C(   517),  INT16_C( 12017),  INT16_C( 29201), -INT16_C( 26955),
         INT16_C(  7175), -INT16_C(  1122),  INT16_C(  6969), -INT16_C(  5723),  INT16_C( 30528),  INT16_C( 17149),  INT16_C( 28657),  INT16_C( 27691) },
      UINT32_C(1172995884),
      { UINT16_C( 7154), UINT16_C(60768), UINT16_C(20760), UINT16_C(10779), UINT16_C(53443), UINT16_C(51904), UINT16_C(24557), UINT16_C( 9926),
        UINT16_C(27514), UINT16_C(47631), UINT16_C( 3299), UINT16_C(54524), UINT16_C(10108), UINT16_C(43072), UINT16_C(10918), UINT16_C(39149),
        UINT16_C(19782), UINT16_C(24198), UINT16_C(41375), UINT16_C(25224), UINT16_C(18802), UINT16_C(24365), UINT16_C(62376), UINT16_C( 8837),
        UINT16_C(38238), UINT16_C(16860), UINT16_C(55457), UINT16_C( 7445), UINT16_C(22016), UINT16_C(42693), UINT16_C(45696), UINT16_C(50751) },
      { UINT16_C(50432), UINT16_C(40741), UINT16_C(44390), UINT16_C(55297), UINT16_C(12022), UINT16_C(40503), UINT16_C(48417), UINT16_C(32960),
        UINT16_C(40018), UINT16_C(62401), UINT16_C(55157), UINT16_C(29969), UINT16_C(54829), UINT16_C(44315), UINT16_C(23177), UINT16_C(35188),
        UINT16_C(39199), UINT16_C(34344), UINT16_C(10566), UINT16_C(15710), UINT16_C(38488), UINT16_C(31195), UINT16_C(40019), UINT16_C(42489),
        UINT16_C(47928), UINT16_C(44440), UINT16_C(43410), UINT16_C(48930), UINT16_C(16000), UINT16_C( 2412), UINT16_C(57496), UINT16_C(47250) },
      { UINT16_C(  742), UINT16_C(27466), UINT16_C(65150),      UINT16_MAX, UINT16_C(34818),      UINT16_MAX, UINT16_C( 5170), UINT16_C(34689),
             UINT16_MAX,      UINT16_MAX, UINT16_C(58456),      UINT16_MAX, UINT16_C(64937),      UINT16_MAX, UINT16_C(34095), UINT16_C(59506),
        UINT16_C(48251), UINT16_C(58542), UINT16_C(29465), UINT16_C(40934), UINT16_C(65019), UINT16_C(55560),      UINT16_MAX, UINT16_C(51326),
             UINT16_MAX, UINT16_C(64414),      UINT16_MAX, UINT16_C(59813), UINT16_C(30528), UINT16_C(17149),      UINT16_MAX, UINT16_C(27691) } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i src = simde_mm512_loadu_epi16(test_vec[i].src);
    simde__m512i a = simde_mm512_loadu_epi16(test_vec[i].a);
    simde__m512i b = simde_mm512_loadu_epi16(test_vec[i].b);
    simde__m512i r = simde_mm512_mask_adds_epu16(src, test_vec[i].k, a, b);
    simde_test_x86_assert_equal_u16x32(r, simde_mm512_loadu_epi16(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_mm512_maskz_adds_epu16 (SIMDE_MUNIT_TEST_ARGS) {
  static const struct {
    const simde__mmask32 k;
    const uint16_t a[32];
    const uint16_t b[32];
    const uint16_t r[32];
  } test_vec[] = {
    { UINT32_C( 298122215),
      { UINT16_C(43877), UINT16_C(21426), UINT16_C(12985), UINT16_C(37214), UINT16_C(44901), UINT16_C(48588), UINT16_C(18525), UINT16_C(41048),
        UINT16_C(22359), UINT16_C(46043), UINT16_C(52738), UINT16_C(43622), UINT16_C(52530), UINT16_C( 6625), UINT16_C(42696), UINT16_C(11818),
        UINT16_C(56401), UINT16_C( 2689), UINT16_C(57359), UINT16_C(29852), UINT16_C(26767), UINT16_C(60465), UINT16_C(35504), UINT16_C( 2188),
        UINT16_C(26593), UINT16_C(58555), UINT16_C( 8501), UINT16_C(26510), UINT16_C(28654), UINT16_C(46976), UINT16_C(43541), UINT16_C(26597) },
      { UINT16_C(26246), UINT16_C(38257), UINT16_C( 3398), UINT16_C(54538), UINT16_C(15221), UINT16_C( 9921), UINT16_C(19909), UINT16_C(42798),
        UINT16_C(59828), UINT16_C(59787), UINT16_C( 6411), UINT16_C(63824), UINT16_C(53384), UINT16_C(40624), UINT16_C(38266), UINT16_C(  261),
        UINT16_C(30460), UINT16_C(17046), UINT16_C(41092), UINT16_C(63768), UINT16_C(55772), UINT16_C(41247), UINT16_C(19751), UINT16_C(56136),
        UINT16_C(54071), UINT16_C(17093), UINT16_C( 5612), UINT16_C(30011), UINT16_C(60646), UINT16_C(24595), UINT16_C( 6273), UINT16_C(32097) },
      {      UINT16_MAX, UINT16_C(59683), UINT16_C(16383), UINT16_C(    0), UINT16_C(    0), UINT16_C(58509), UINT16_C(38434),      UINT16_MAX,
             UINT16_MAX,      UINT16_MAX, UINT16_C(    0),      UINT16_MAX,      UINT16_MAX, UINT16_C(47249),      UINT16_MAX, UINT16_C(12079),
        UINT16_C(    0), UINT16_C(    0),      UINT16_MAX, UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(55255), UINT16_C(58324),
             UINT16_MAX, UINT16_C(    0), UINT16_C(    0), UINT16_C(    0),      UINT16_MAX, UINT16_C(    0), UINT16_C(    0), UINT16_C(    0) } },
    { UINT32_C( 314636430),
      { UINT16_C(55448), UINT16_C(29708), UINT16_C(11185), UINT16_C(55318), UINT16_C(24185), UINT16_C(45236), UINT16_C(31026), UINT16_C( 7922),
        UINT16_C(11662), UINT16_C(29843), UINT16_C(42521), UINT16_C(39893), UINT16_C(14014), UINT16_C(19736), UINT16_C(55342), UINT16_C(51039),
        UINT16_C(27568), UINT16_C(25147), UINT16_C(20887), UINT16_C( 4154), UINT16_C(61104), UINT16_C(58048), UINT16_C(45671), UINT16_C(62976),
        UINT16_C(38111), UINT16_C(63850), UINT16_C(16186), UINT16_C(63892), UINT16_C(44150), UINT16_C(42054), UINT16_C(42373), UINT16_C(13675) },
      { UINT16_C(42769), UINT16_C(43159), UINT16_C(54008), UINT16_C(43192), UINT16_C(30912), UINT16_C(10378), UINT16_C(35626), UINT16_C( 2334),
        UINT16_C(34847), UINT16_C(22786), UINT16_C(38600), UINT16_C(15954), UINT16_C(38979), UINT16_C(51426), UINT16_C(20030), UINT16_C(20477),
        UINT16_C(38389), UINT16_C(60919), UINT16_C(44903), UINT16_C(10134), UINT16_C( 8231), UINT16_C(20815), UINT16_C(28075), UINT16_C(51802),
        UINT16_C(24054), UINT16_C(48676), UINT16_C(30451), UINT16_C(14076), UINT16_C(56847), UINT16_C(19966), UINT16_C(64556), UINT16_C( 8604) },
      { UINT16_C(    0),      UINT16_MAX, UINT16_C(65193),      UINT16_MAX, UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(10256),
        UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(55847), UINT16_C(52993),      UINT16_MAX,      UINT16_MAX,      UINT16_MAX,
        UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0),      UINT16_MAX,      UINT16_MAX,
        UINT16_C(    0),      UINT16_MAX, UINT16_C(    0), UINT16_C(    0),      UINT16_MAX, UINT16_C(    0), UINT16_C(    0), UINT16_C(    0) } },
    { UINT32_C(4161770385),
      { UINT16_C(42306), UINT16_C(26911), UINT16_C(28613), UINT16_C(29114), UINT16_C( 5340), UINT16_C(53819), UINT16_C(24433), UINT16_C(26000),
        UINT16_C(36054), UINT16_C(58779), UINT16_C(39531), UINT16_C(38706), UINT16_C(52886), UINT16_C(10169), UINT16_C(51297), UINT16_C(41759),
        UINT16_C(15981), UINT16_C(12812), UINT16_C(50861), UINT16_C(35491), UINT16_C(57306), UINT16_C(19548), UINT16_C(60734), UINT16_C( 5297),
        UINT16_C(19577), UINT16_C(58617), UINT16_C(11238), UINT16_C(31868), UINT16_C(13817), UINT16_C(23203), UINT16_C(49917), UINT16_C(27389) },
      { UINT16_C( 2305), UINT16_C(44700), UINT16_C(16591), UINT16_C(43576), UINT16_C(38175), UINT16_C(24054), UINT16_C(42882), UINT16_C(64370),
        UINT16_C(27635), UINT16_C(56032), UINT16_C(23703), UINT16_C(36950), UINT16_C(64145), UINT16_C(36587), UINT16_C(59580), UINT16_C(48632),
        UINT16_C(38130), UINT16_C(49516), UINT16_C(42196), UINT16_C(62315), UINT16_C(24889), UINT16_C(47953), UINT16_C(49928), UINT16_C(64695),
        UINT16_C(38702), UINT16_C(50646), UINT16_C(11507), UINT16_C(33878), UINT16_C(16678), UINT16_C(58130), UINT16_C( 2601), UINT16_C( 7072) },
      { UINT16_C(44611), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(43515), UINT16_C(    0), UINT16_C(    0),      UINT16_MAX,
        UINT16_C(63689),      UINT16_MAX, UINT16_C(    0), UINT16_C(    0),      UINT16_MAX, UINT16_C(    0), UINT16_C(    0),      UINT16_MAX,
        UINT16_C(54111), UINT16_C(62328),      UINT16_MAX,      UINT16_MAX, UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0),
        UINT16_C(    0), UINT16_C(    0), UINT16_C(    0),      UINT16_MAX, UINT16_C(30495),      UINT16_MAX, UINT16_C(52518), UINT16_C(34461) } },
    { UINT32_C(1943866526),
      { UINT16_C(18609), UINT16_C(60006), UINT16_C(47018), UINT16_C(45734), UINT16_C(23930), UINT16_C(43438), UINT16_C(34036), UINT16_C(59246),
        UINT16_C(50353), UINT16_C(55147), UINT16_C(32005), UINT16_C(12218), UINT16_C(23431), UINT16_C( 9546), UINT16_C(10087), UINT16_C( 6296),
        UINT16_C(65392), UINT16_C( 6659), UINT16_C(43446), UINT16_C(12748), UINT16_C(31494), UINT16_C(64218), UINT16_C(18687), UINT16_C(45281),
        UINT16_C(19469), UINT16_C( 4744), UINT16_C(17097), UINT16_C(20545), UINT16_C(35997), UINT16_C( 1397), UINT16_C( 3763), UINT16_C( 8989) },
      { UINT16_C( 8205), UINT16_C(49981), UINT16_C( 2761), UINT16_C(53236), UINT16_C(52869), UINT16_C(33993), UINT16_C(43543), UINT16_C( 9269),
        UINT16_C(48630), UINT16_C(48950), UINT16_C(30975), UINT16_C(40207), UINT16_C(34052), UINT16_C(47010), UINT16_C(49043), UINT16_C(41179),
        UINT16_C( 6368), UINT16_C(43363), UINT16_C(22562), UINT16_C(42873), UINT16_C(16934), UINT16_C(15660), UINT16_C(25069), UINT16_C(58209),
        UINT16_C(38942), UINT16_C( 7587), UINT16_C(45584), UINT16_C( 5306), UINT16_C(23607), UINT16_C(51915), UINT16_C(42524), UINT16_C(64618) },
      { UINT16_C(    0),      UINT16_MAX, UINT16_C(49779),      UINT16_MAX,      UINT16_MAX, UINT16_C(    0), UINT16_C(    0),      UINT16_MAX,
        UINT16_C(    0), UINT16_C(    0), UINT16_C(62980), UINT16_C(52425), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0),
             UINT16_MAX, UINT16_C(    0),      UINT16_MAX, UINT16_C(55621), UINT16_C(48428), UINT16_C(    0), UINT16_C(43756),      UINT16_MAX,
        UINT16_C(58411), UINT16_C(12331), UINT16_C(    0), UINT16_C(    0), UINT16_C(59604), UINT16_C(53312), UINT16_C(46287), UINT16_C(    0) } },
    { UINT32_C(3785739967),
      { UINT16_C( 7718), UINT16_C(19593), UINT16_C(46433), UINT16_C(20106), UINT16_C(60182), UINT16_C(13361), UINT16_C(54403), UINT16_C(37713),
        UINT16_C( 3207), UINT16_C(48807), UINT16_C(29544), UINT16_C(33929), UINT16_C(62233), UINT16_C(55424), UINT16_C( 9921), UINT16_C(59322),
        UINT16_C(17220), UINT16_C(42292), UINT16_C(48888), UINT16_C( 3827), UINT16_C( 9641), UINT16_C(11586), UINT16_C(37881), UINT16_C(32960),
        UINT16_C(26783), UINT16_C( 2111), UINT16_C(51419), UINT16_C(62604), UINT16_C( 3515), UINT16_C(32205), UINT16_C(34611), UINT16_C(30564) },
      { UINT16_C(39114), UINT16_C(49693), UINT16_C( 4182), UINT16_C(  208), UINT16_C( 4661), UINT16_C(12077), UINT16_C(60837), UINT16_C(17839),
        UINT16_C(61013), UINT16_C(12365), UINT16_C(55734), UINT16_C(29221), UINT16_C(62182), UINT16_C( 6639), UINT16_C(21369), UINT16_C(17297),
        UINT16_C(44780), UINT16_C(16901), UINT16_C(54718), UINT16_C(62530), UINT16_C(28647), UINT16_C(35875), UINT16_C(53853), UINT16_C(45777),
        UINT16_C( 7873), UINT16_C(30691), UINT16_C( 2296), UINT16_C(57065), UINT16_C(55546), UINT16_C(29688), UINT16_C(35116), UINT16_C( 6326) },
      { UINT16_C(46832),      UINT16_MAX, UINT16_C(50615), UINT16_C(20314), UINT16_C(64843), UINT16_C(25438), UINT16_C(    0), UINT16_C(55552),
        UINT16_C(    0), UINT16_C(61172),      UINT16_MAX, UINT16_C(63150), UINT16_C(    0), UINT16_C(    0), UINT16_C(31290),      UINT16_MAX,
        UINT16_C(62000), UINT16_C(    0),      UINT16_MAX, UINT16_C(    0), UINT16_C(    0), UINT16_C(47461), UINT16_C(    0),      UINT16_MAX,
        UINT16_C(34656), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(61893),      UINT16_MAX, UINT16_C(36890) } },
    { UINT32_C(4116364087),
      { UINT16_C(40336), UINT16_C(30697), UINT16_C( 3084), UINT16_C(26883), UINT16_C(54751), UINT16_C(40988), UINT16_C(65523), UINT16_C(60183),
        UINT16_C(  263), UINT16_C(  458), UINT16_C(49881), UINT16_C( 1396), UINT16_C(10827), UINT16_C(33309), UINT16_C(30949), UINT16_C(30071),
        UINT16_C(24853), UINT16_C( 8684), UINT16_C(61293), UINT16_C(19595), UINT16_C(42948), UINT16_C(47340), UINT16_C( 1190), UINT16_C(44451),
        UINT16_C(27909), UINT16_C(57006), UINT16_C( 8751), UINT16_C(31460), UINT16_C(  332), UINT16_C(12796), UINT16_C(29817), UINT16_C(36518) },
      { UINT16_C(37589), UINT16_C(17072), UINT16_C(15233), UINT16_C(18063), UINT16_C(31714), UINT16_C(35070), UINT16_C(41343), UINT16_C(33845),
        UINT16_C(58127), UINT16_C(15971), UINT16_C(18181), UINT16_C(20921), UINT16_C(46408), UINT16_C(49794), UINT16_C(10281), UINT16_C(65104),
        UINT16_C(  186), UINT16_C(15169), UINT16_C(53307), UINT16_C( 7553), UINT16_C(32587), UINT16_C(52133), UINT16_C(55841), UINT16_C(12367),
        UINT16_C(45757), UINT16_C(49774), UINT16_C(10233), UINT16_C(16915), UINT16_C(38365), UINT16_C( 1540), UINT16_C(21693), UINT16_C(30469) },
      {      UINT16_MAX, UINT16_C(47769), UINT16_C(18317), UINT16_C(    0),      UINT16_MAX,      UINT16_MAX, UINT16_C(    0), UINT16_C(    0),
        UINT16_C(58390), UINT16_C(16429), UINT16_C(    0), UINT16_C(22317), UINT16_C(57235),      UINT16_MAX, UINT16_C(    0),      UINT16_MAX,
        UINT16_C(    0), UINT16_C(23853), UINT16_C(    0), UINT16_C(27148),      UINT16_MAX, UINT16_C(    0), UINT16_C(57031), UINT16_C(    0),
             UINT16_MAX, UINT16_C(    0), UINT16_C(18984), UINT16_C(    0), UINT16_C(38697), UINT16_C(14336), UINT16_C(51510),      UINT16_MAX } },
    { UINT32_C(2427668053),
      { UINT16_C(13334), UINT16_C(25006), UINT16_C(21428), UINT16_C(54572), UINT16_C(31790), UINT16_C(60165), UINT16_C(29486), UINT16_C(10414),
        UINT16_C(49563), UINT16_C(30826), UINT16_C(28247), UINT16_C( 5246), UINT16_C(33730), UINT16_C( 6028), UINT16_C(16329), UINT16_C(57256),
        UINT16_C(22131), UINT16_C(10049), UINT16_C(28073), UINT16_C(55292), UINT16_C(  489), UINT16_C( 6339), UINT16_C(29045), UINT16_C( 4160),
        UINT16_C(43570), UINT16_C(35208), UINT16_C( 1560), UINT16_C(55966), UINT16_C(10890), UINT16_C(21490), UINT16_C(39529), UINT16_C(56371) },
      { UINT16_C(29936), UINT16_C(39172), UINT16_C(  225), UINT16_C(52081), UINT16_C(13314), UINT16_C(30691), UINT16_C( 9125), UINT16_C(55175),
        UINT16_C( 4045), UINT16_C(58721), UINT16_C(65301), UINT16_C(40895), UINT16_C(45353), UINT16_C(37619), UINT16_C( 9803), UINT16_C(15214),
        UINT16_C(29338), UINT16_C(31701), UINT16_C(18035), UINT16_C(30022), UINT16_C(10618), UINT16_C( 8172), UINT16_C(29516), UINT16_C( 6646),
        UINT16_C(22402), UINT16_C(38910), UINT16_C(48726), UINT16_C(32567), UINT16_C(10863), UINT16_C(47889), UINT16_C(32848), UINT16_C(60150) },
      { UINT16_C(43270), UINT16_C(    0), UINT16_C(21653), UINT16_C(    0), UINT16_C(45104), UINT16_C(    0), UINT16_C(38611), UINT16_C(    0),
        UINT16_C(    0),      UINT16_MAX,      UINT16_MAX, UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(26132), UINT16_C(    0),
        UINT16_C(51469), UINT16_C(41750), UINT16_C(    0), UINT16_C(    0), UINT16_C(11107), UINT16_C(14511), UINT16_C(    0), UINT16_C(10806),
        UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(21753), UINT16_C(    0), UINT16_C(    0),      UINT16_MAX } },
    { UINT32_C(1701170162),
      { UINT16_C(44049), UINT16_C(35802), UINT16_C(50901), UINT16_C( 8874), UINT16_C(41273), UINT16_C(47931), UINT16_C(15096), UINT16_C(20307),
        UINT16_C(35576), UINT16_C(26574), UINT16_C(57524), UINT16_C( 1058), UINT16_C( 6496), UINT16_C(21230), UINT16_C(21476), UINT16_C(63160),
        UINT16_C(37631), UINT16_C(54657), UINT16_C(11353), UINT16_C(37623), UINT16_C(13005), UINT16_C(50510), UINT16_C(41324), UINT16_C(25620),
        UINT16_C(58155), UINT16_C(57292), UINT16_C(61123), UINT16_C( 9187), UINT16_C(53511), UINT16_C(60533), UINT16_C(11556), UINT16_C( 9442) },
      { UINT16_C(25536), UINT16_C( 6649), UINT16_C(61583), UINT16_C(23723), UINT16_C(63778), UINT16_C(36642), UINT16_C(13978), UINT16_C(50675),
        UINT16_C(48921), UINT16_C(56484), UINT16_C(34734), UINT16_C(46591), UINT16_C(30040), UINT16_C(32161), UINT16_C(33698), UINT16_C(25249),
        UINT16_C(39655), UINT16_C(30331), UINT16_C(10122), UINT16_C(44243), UINT16_C(62752), UINT16_C(47931), UINT16_C(12075), UINT16_C(17792),
        UINT16_C( 9710), UINT16_C(39969), UINT16_C( 8620), UINT16_C( 1362), UINT16_C(62358), UINT16_C(14466), UINT16_C( 9079), UINT16_C(24219) },
      { UINT16_C(    0), UINT16_C(42451), UINT16_C(    0), UINT16_C(    0),      UINT16_MAX,      UINT16_MAX, UINT16_C(29074),      UINT16_MAX,
             UINT16_MAX,      UINT16_MAX, UINT16_C(    0), UINT16_C(47649), UINT16_C(    0), UINT16_C(    0), UINT16_C(55174),      UINT16_MAX,
             UINT16_MAX, UINT16_C(    0), UINT16_C(21475), UINT16_C(    0), UINT16_C(    0),      UINT16_MAX, UINT16_C(53399), UINT16_C(    0),
             UINT16_MAX, UINT16_C(    0),      UINT16_MAX, UINT16_C(    0), UINT16_C(    0),      UINT16_MAX, UINT16_C(20635), UINT16_C(    0) } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i a = simde_mm512_loadu_epi16(test_vec[i].a);
    simde__m512i b = simde_mm512_loadu_epi16(test_vec[i].b);
    simde__m512i r = simde_mm512_maskz_adds_epu16(test_vec[i].k, a, b);
    simde_test_x86_assert_equal_u16x32(r, simde_mm512_loadu_epi16(test_vec[i].r));
  }

  return 0;
}

static int
test_simde_x_mm_adds_epi32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const int32_t a[4];
    const int32_t b[4];
    const int32_t r[4];
  } test_vec[] = {
    { {  INT32_C(   795043823),  INT32_C(  1677977077), -INT32_C(  1932655024), -INT32_C(   289899915) },
      { -INT32_C(  1044210742),  INT32_C(   668338078),  INT32_C(  1187560581),  INT32_C(    40306706) },
      { -INT32_C(   249166919),              INT32_MAX, -INT32_C(   745094443), -INT32_C(   249593209) } },
    { {  INT32_C(  1697761904), -INT32_C(     3525457), -INT32_C(  1333028806), -INT32_C(   593607662) },
      {  INT32_C(  2107466207), -INT32_C(   291146904),  INT32_C(  1110732080), -INT32_C(   431711370) },
      {              INT32_MAX, -INT32_C(   294672361), -INT32_C(   222296726), -INT32_C(  1025319032) } },
    { {  INT32_C(   357266789), -INT32_C(   468445782), -INT32_C(  1080778579), -INT32_C(  1013238812) },
      { -INT32_C(    62900076), -INT32_C(   588585556), -INT32_C(   920773037),  INT32_C(   531588025) },
      {  INT32_C(   294366713), -INT32_C(  1057031338), -INT32_C(  2001551616), -INT32_C(   481650787) } },
    { { -INT32_C(  2110457128), -INT32_C(  1117304816), -INT32_C(   864158744), -INT32_C(  1030809554) },
      { -INT32_C(    37760943),  INT32_C(   148482485), -INT32_C(  2116945976),  INT32_C(   866156634) },
      {              INT32_MIN, -INT32_C(   968822331),              INT32_MIN, -INT32_C(   164652920) } },
    { { -INT32_C(  1951017861),  INT32_C(    88611869),  INT32_C(  1188218136),  INT32_C(   789144030) },
      { -INT32_C(   416495567),  INT32_C(   971965809),  INT32_C(  1471922684), -INT32_C(  1131783359) },
      {              INT32_MIN,  INT32_C(  1060577678),              INT32_MAX, -INT32_C(   342639329) } },
    { {  INT32_C(  1296514864),  INT32_C(  1951567964),  INT32_C(   867837013), -INT32_C(  1218264186) },
      { -INT32_C(    39940469), -INT32_C(  1875472749), -INT32_C(  1863847601),  INT32_C(  2102227277) },
      {  INT32_C(  1256574395),  INT32_C(    76095215), -INT32_C(   996010588),  INT32_C(   883963091) } },
    { {  INT32_C(   214602928),  INT32_C(  2055216164), -INT32_C(   944948415), -INT32_C(  1971449602) },
      {  INT32_C(   847715742), -INT32_C(    87900757), -INT32_C(    58021457), -INT32_C(   897984742) },
      {  INT32_C(  1062318670),  INT32_C(  1967315407), -INT32_C(  1002969872),              INT32_MIN } },
    { { -INT32_C(  1864940692), -INT32_C(  1609935009), -INT32_C(  1855473518),  INT32_C(  1713104584) },
      { -INT32_C(  1365728765),  INT32_C(   245914207),  INT32_C(   487207427),  INT32_C(  1994949386) },
      {              INT32_MIN, -INT32_C(  1364020802), -INT32_C(  1368266091),              INT32_MAX } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m128i a = simde_x_mm_loadu_epi32(test_vec[i].a);
    simde__m128i b = simde_x_mm_loadu_epi32(test_vec[i].b);
    simde__m128i r = simde_x_mm_adds_epi32(a, b);
    simde_test_x86_assert_equal_i32x4(r, simde_x_mm_loadu_epi32(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m128i a = simde_test_x86_random_i32x4();
    simde__m128i b = simde_test_x86_random_i32x4();
    simde__m128i r = simde_x_mm_adds_epi32(a, b);

    simde_test_x86_write_i32x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x4(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_x_mm256_adds_epi32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const int32_t a[8];
    const int32_t b[8];
    const int32_t r[8];
  } test_vec[] = {
    { {  INT32_C(   637976518), -INT32_C(  1446637290), -INT32_C(  1858457911),  INT32_C(   402085140),  INT32_C(  1455788279), -INT32_C(   295342614), -INT32_C(  1458868321), -INT32_C(  1189088269) },
      { -INT32_C(   908122446),  INT32_C(     7513655), -INT32_C(   393106220), -INT32_C(   117471231),  INT32_C(    55493656), -INT32_C(   789466319),  INT32_C(   377158691), -INT32_C(  1563452944) },
      { -INT32_C(   270145928), -INT32_C(  1439123635),              INT32_MIN,  INT32_C(   284613909),  INT32_C(  1511281935), -INT32_C(  1084808933), -INT32_C(  1081709630),              INT32_MIN } },
    { { -INT32_C(   160714817),  INT32_C(   704044373), -INT32_C(  1978562679),  INT32_C(   679612432),  INT32_C(    86757844), -INT32_C(  1479205756),  INT32_C(   163401497), -INT32_C(  1465152023) },
      { -INT32_C(  1851844804),  INT32_C(  2126157300),  INT32_C(   755551005), -INT32_C(  1353348133), -INT32_C(   525041316), -INT32_C(  1232565859), -INT32_C(  1027652135),  INT32_C(   241855442) },
      { -INT32_C(  2012559621),              INT32_MAX, -INT32_C(  1223011674), -INT32_C(   673735701), -INT32_C(   438283472),              INT32_MIN, -INT32_C(   864250638), -INT32_C(  1223296581) } },
    { {  INT32_C(  1990134146), -INT32_C(  1124836961), -INT32_C(     1442524), -INT32_C(   458342776),  INT32_C(  1573151423), -INT32_C(   988590868),  INT32_C(  1686623122), -INT32_C(  1066143426) },
      { -INT32_C(  1707732229), -INT32_C(  1873400980), -INT32_C(  1332723928),  INT32_C(  1033125501), -INT32_C(  1919264607),  INT32_C(   928165285), -INT32_C(  1097082496), -INT32_C(   981594422) },
      {  INT32_C(   282401917),              INT32_MIN, -INT32_C(  1334166452),  INT32_C(   574782725), -INT32_C(   346113184), -INT32_C(    60425583),  INT32_C(   589540626), -INT32_C(  2047737848) } },
    { { -INT32_C(  1923107551),  INT32_C(   136164832),  INT32_C(  1924705780), -INT32_C(  1917891348),  INT32_C(  1226459556),  INT32_C(  2004905206),  INT32_C(   255138885),  INT32_C(  1272296490) },
      {  INT32_C(  1238905961), -INT32_C(   565053718), -INT32_C(  1890580061), -INT32_C(   115540139),  INT32_C(  1061369416), -INT32_C(   407452766),  INT32_C(   184019935),  INT32_C(   139840671) },
      { -INT32_C(   684201590), -INT32_C(   428888886),  INT32_C(    34125719), -INT32_C(  2033431487),              INT32_MAX,  INT32_C(  1597452440),  INT32_C(   439158820),  INT32_C(  1412137161) } },
    { { -INT32_C(   363778560), -INT32_C(   943087068),  INT32_C(     5708203),  INT32_C(  1643803417),  INT32_C(  1285569962), -INT32_C(   533441024), -INT32_C(   504747198), -INT32_C(   135643145) },
      { -INT32_C(  1847444627), -INT32_C(  1990612002), -INT32_C(   578113340), -INT32_C(   851475421), -INT32_C(  1055203391),  INT32_C(  2023837238),  INT32_C(  1884916601),  INT32_C(   946291659) },
      {              INT32_MIN,              INT32_MIN, -INT32_C(   572405137),  INT32_C(   792327996),  INT32_C(   230366571),  INT32_C(  1490396214),  INT32_C(  1380169403),  INT32_C(   810648514) } },
    { {  INT32_C(  1573538175), -INT32_C(  1176099852), -INT32_C(   157912877), -INT32_C(  1245391372), -INT32_C(   344465739), -INT32_C(  1520232404),  INT32_C(  1863695524),  INT32_C(  2141682688) },
      { -INT32_C(  1159958074),  INT32_C(  1735639700),  INT32_C(   660474419), -INT32_C(  1797446945),  INT32_C(   746542080),  INT32_C(   282190444), -INT32_C(  1619007841),  INT32_C(   673064802) },
      {  INT32_C(   413580101),  INT32_C(   559539848),  INT32_C(   502561542),              INT32_MIN,  INT32_C(   402076341), -INT32_C(  1238041960),  INT32_C(   244687683),              INT32_MAX } },
    { {  INT32_C(   769915544), -INT32_C(   275491140),  INT32_C(  1075311200),  INT32_C(   349500436), -INT32_C(  1270852536), -INT32_C(   708505290),  INT32_C(  1517569271),  INT32_C(    75666027) },
      {  INT32_C(  1227974028),  INT32_C(   473482684), -INT32_C(   866365512), -INT32_C(  1948176061), -INT32_C(  1153425019),  INT32_C(   714147123), -INT32_C(  1249639095),  INT32_C(   616105880) },
      {  INT32_C(  1997889572),  INT32_C(   197991544),  INT32_C(   208945688), -INT32_C(  1598675625),              INT32_MIN,  INT32_C(     5641833),  INT32_C(   267930176),  INT32_C(   691771907) } },
    { {  INT32_C(   678292076),  INT32_C(  1732617903),  INT32_C(   959750645),  INT32_C(  1472468434),  INT32_C(  1762853942),  INT32_C(  1402250249),  INT32_C(  1091049641), -INT32_C(  1939422945) },
      {  INT32_C(  1521800107),  INT32_C(  1875048825),  INT32_C(  1839789723),  INT32_C(  1103457291),  INT32_C(  2058082417),  INT32_C(   634208124),  INT32_C(  2003293527),  INT32_C(  1090768278) },
      {              INT32_MAX,              INT32_MAX,              INT32_MAX,              INT32_MAX,              INT32_MAX,  INT32_C(  2036458373),              INT32_MAX, -INT32_C(   848654667) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m256i a = simde_x_mm256_loadu_epi32(test_vec[i].a);
    simde__m256i b = simde_x_mm256_loadu_epi32(test_vec[i].b);
    simde__m256i r = simde_x_mm256_adds_epi32(a, b);
    simde_test_x86_assert_equal_i32x8(r, simde_x_mm256_loadu_epi32(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m256i a = simde_test_x86_random_i32x8();
    simde__m256i b = simde_test_x86_random_i32x8();
    simde__m256i r = simde_x_mm256_adds_epi32(a, b);

    simde_test_x86_write_i32x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_i32x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x8(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_x_mm512_adds_epi32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const int32_t a[16];
    const int32_t b[16];
    const int32_t r[16];
  } test_vec[] = {
    { {  INT32_C(   446478240),  INT32_C(  1284071089),  INT32_C(  1605972308),  INT32_C(   245399197), -INT32_C(   762754218), -INT32_C(   487041398), -INT32_C(  1034330324), -INT32_C(   872129492),
        -INT32_C(   991518701),  INT32_C(  1376808958),  INT32_C(  1051839136), -INT32_C(  1622388408),  INT32_C(   661771677),  INT32_C(  1477011756), -INT32_C(   199597368), -INT32_C(   759095618) },
      { -INT32_C(  1130977346), -INT32_C(  1223776489), -INT32_C(  1175077007), -INT32_C(  1369947631),  INT32_C(  1138084375), -INT32_C(    56893645),  INT32_C(    15775297), -INT32_C(  1814908460),
         INT32_C(  1884252249), -INT32_C(  2144903665),  INT32_C(   775560477),  INT32_C(  1994166879), -INT32_C(  1866812836), -INT32_C(   762554991), -INT32_C(   523076597), -INT32_C(  2022464466) },
      { -INT32_C(   684499106),  INT32_C(    60294600),  INT32_C(   430895301), -INT32_C(  1124548434),  INT32_C(   375330157), -INT32_C(   543935043), -INT32_C(  1018555027),              INT32_MIN,
         INT32_C(   892733548), -INT32_C(   768094707),  INT32_C(  1827399613),  INT32_C(   371778471), -INT32_C(  1205041159),  INT32_C(   714456765), -INT32_C(   722673965),              INT32_MIN } },
    { {  INT32_C(   485999117),  INT32_C(  1050484256), -INT32_C(  1704143045), -INT32_C(   971945623), -INT32_C(  1940468741),  INT32_C(   744415776), -INT32_C(  1945357986), -INT32_C(   502038571),
         INT32_C(  1660881473),  INT32_C(  1688247337), -INT32_C(   587264909),  INT32_C(  1352798293), -INT32_C(    69404453),  INT32_C(   958872538),  INT32_C(  1103442796), -INT32_C(   198911566) },
      {  INT32_C(   206971875),  INT32_C(   846329535),  INT32_C(  1477341186),  INT32_C(  1537782144), -INT32_C(  2074704471),  INT32_C(   750616256),  INT32_C(  1684898481),  INT32_C(  1062768987),
         INT32_C(  1934339764), -INT32_C(  1499087708), -INT32_C(  1392593876),  INT32_C(   235382629), -INT32_C(   325951956), -INT32_C(  1927786532),  INT32_C(   770803154), -INT32_C(   882095849) },
      {  INT32_C(   692970992),  INT32_C(  1896813791), -INT32_C(   226801859),  INT32_C(   565836521),              INT32_MIN,  INT32_C(  1495032032), -INT32_C(   260459505),  INT32_C(   560730416),
                     INT32_MAX,  INT32_C(   189159629), -INT32_C(  1979858785),  INT32_C(  1588180922), -INT32_C(   395356409), -INT32_C(   968913994),  INT32_C(  1874245950), -INT32_C(  1081007415) } },
    { { -INT32_C(  1690322697), -INT32_C(  1589451660), -INT32_C(    45268840),  INT32_C(   319575527), -INT32_C(  1879073101), -INT32_C(  1071900690), -INT32_C(  1259532643),  INT32_C(  1333746263),
        -INT32_C(  2031436270),  INT32_C(   992423075),  INT32_C(  1413051757),  INT32_C(  2103985610), -INT32_C(   787716125),  INT32_C(   479275135), -INT32_C(  1898938570), -INT32_C(   337817639) },
      { -INT32_C(  1317943538),  INT32_C(  1642895860), -INT32_C(   659217138),  INT32_C(  1314200938),  INT32_C(    69165445), -INT32_C(  1071599223),  INT32_C(   156168240),  INT32_C(  1307847487),
        -INT32_C(   419535374),  INT32_C(   206040062),  INT32_C(  2078604560), -INT32_C(  1614202598),  INT32_C(   614721690), -INT32_C(   907754599), -INT32_C(   204328269),  INT32_C(  1329645149) },
      {              INT32_MIN,  INT32_C(    53444200), -INT32_C(   704485978),  INT32_C(  1633776465), -INT32_C(  1809907656), -INT32_C(  2143499913), -INT32_C(  1103364403),              INT32_MAX,
                     INT32_MIN,  INT32_C(  1198463137),              INT32_MAX,  INT32_C(   489783012), -INT32_C(   172994435), -INT32_C(   428479464), -INT32_C(  2103266839),  INT32_C(   991827510) } },
    { {  INT32_C(   708198188),  INT32_C(   976715050), -INT32_C(  1783293062), -INT32_C(   281772459),  INT32_C(     1300583),  INT32_C(  1338701723), -INT32_C(  2042454999), -INT32_C(  1881767325),
        -INT32_C(   340194111),  INT32_C(    69660809),  INT32_C(  1637473036), -INT32_C(  1051669158),  INT32_C(  1103193253), -INT32_C(  2054124709), -INT32_C(  1962159576),  INT32_C(   370860372) },
      {  INT32_C(  1996608493), -INT32_C(   797235260),  INT32_C(  1563497475), -INT32_C(  2028043807),  INT32_C(  1103683557), -INT32_C(  1815717781),  INT32_C(  2115948842), -INT32_C(  1600898893),
        -INT32_C(   820537845), -INT32_C(  1063284035), -INT32_C(  2011311962),  INT32_C(   923745106), -INT32_C(  2038900965),  INT32_C(  1494826543), -INT32_C(  1009305840),  INT32_C(  2053336175) },
      {              INT32_MAX,  INT32_C(   179479790), -INT32_C(   219795587),              INT32_MIN,  INT32_C(  1104984140), -INT32_C(   477016058),  INT32_C(    73493843),              INT32_MIN,
        -INT32_C(  1160731956), -INT32_C(   993623226), -INT32_C(   373838926), -INT32_C(   127924052), -INT32_C(   935707712), -INT32_C(   559298166),              INT32_MIN,              INT32_MAX } },
    { { -INT32_C(  1085637886), -INT32_C(  1266620147),  INT32_C(   205299130), -INT32_C(   196916263),  INT32_C(  1366998050),  INT32_C(   178951162),  INT32_C(   969769418), -INT32_C(   273468947),
        -INT32_C(  1179648596), -INT32_C(  1586679833), -INT32_C(  1515345460),  INT32_C(   379187444), -INT32_C(  1486416980),  INT32_C(  1890652582), -INT32_C(  2136375405),  INT32_C(  1550867888) },
      {  INT32_C(  1091903322),  INT32_C(   451052366),  INT32_C(   566267692),  INT32_C(   741824896),  INT32_C(   332636013),  INT32_C(  1132758448), -INT32_C(  1262211836), -INT32_C(   451922806),
        -INT32_C(  1591335597), -INT32_C(   709162584),  INT32_C(   418806680),  INT32_C(  1111829973),  INT32_C(  2102728908), -INT32_C(  1581196899), -INT32_C(  1856666617),  INT32_C(   192308664) },
      {  INT32_C(     6265436), -INT32_C(   815567781),  INT32_C(   771566822),  INT32_C(   544908633),  INT32_C(  1699634063),  INT32_C(  1311709610), -INT32_C(   292442418), -INT32_C(   725391753),
                     INT32_MIN,              INT32_MIN, -INT32_C(  1096538780),  INT32_C(  1491017417),  INT32_C(   616311928),  INT32_C(   309455683),              INT32_MIN,  INT32_C(  1743176552) } },
    { {  INT32_C(   866950539),  INT32_C(  1040738470), -INT32_C(  1202192669), -INT32_C(   117793748),  INT32_C(  1383420084),  INT32_C(   821245481),  INT32_C(  1942112698),  INT32_C(   964573358),
         INT32_C(  2070752213),  INT32_C(  1991931283), -INT32_C(  1607528076),  INT32_C(  1637362093), -INT32_C(  1548546439), -INT32_C(    19683516), -INT32_C(  1636723216), -INT32_C(  1546063666) },
      { -INT32_C(  1373682405),  INT32_C(   774166970), -INT32_C(  1748085782), -INT32_C(   151492739), -INT32_C(  1181111179),  INT32_C(  1136094547), -INT32_C(   790550270),  INT32_C(   880064793),
        -INT32_C(  1176333314),  INT32_C(  1457981036), -INT32_C(   672287142), -INT32_C(  1832000227), -INT32_C(   464820335), -INT32_C(   702086444),  INT32_C(  1151797547), -INT32_C(  1049093182) },
      { -INT32_C(   506731866),  INT32_C(  1814905440),              INT32_MIN, -INT32_C(   269286487),  INT32_C(   202308905),  INT32_C(  1957340028),  INT32_C(  1151562428),  INT32_C(  1844638151),
         INT32_C(   894418899),              INT32_MAX,              INT32_MIN, -INT32_C(   194638134), -INT32_C(  2013366774), -INT32_C(   721769960), -INT32_C(   484925669),              INT32_MIN } },
    { {  INT32_C(   444226222), -INT32_C(  1150262943),  INT32_C(   882007319), -INT32_C(   725196990), -INT32_C(  1699212858),  INT32_C(  1064427540), -INT32_C(  1417406231), -INT32_C(   512951245),
        -INT32_C(  1191451049),  INT32_C(  1601399624),  INT32_C(   177472968),  INT32_C(   735992420), -INT32_C(  2134534292),  INT32_C(  1623144055), -INT32_C(  2129968306), -INT32_C(  1755154368) },
      { -INT32_C(  1504748194), -INT32_C(  1878605112),  INT32_C(   731617991),  INT32_C(  1616280052), -INT32_C(  2015355888), -INT32_C(  1578655662),  INT32_C(   589493219), -INT32_C(   910523029),
        -INT32_C(  1418720798), -INT32_C(  1841596725),  INT32_C(    79615504),  INT32_C(  1617237072), -INT32_C(  2081929936), -INT32_C(   920334363),  INT32_C(   770459330), -INT32_C(  1359501365) },
      { -INT32_C(  1060521972),              INT32_MIN,  INT32_C(  1613625310),  INT32_C(   891083062),              INT32_MIN, -INT32_C(   514228122), -INT32_C(   827913012), -INT32_C(  1423474274),
                     INT32_MIN, -INT32_C(   240197101),  INT32_C(   257088472),              INT32_MAX,              INT32_MIN,  INT32_C(   702809692), -INT32_C(  1359508976),              INT32_MIN } },
    { {  INT32_C(  2086234032), -INT32_C(   317811491), -INT32_C(  1141781397),  INT32_C(   287004385), -INT32_C(  2121006180), -INT32_C(  1790265133), -INT32_C(   893175809), -INT32_C(  1904690466),
        -INT32_C(    32845535), -INT32_C(   773121690), -INT32_C(   963846939), -INT32_C(   807885005),  INT32_C(  2119199915),  INT32_C(   605264677), -INT32_C(  1326524718), -INT32_C(  1321310320) },
      { -INT32_C(  1632679624),  INT32_C(  1198496354), -INT32_C(  1441858697),  INT32_C(  1316611747),  INT32_C(  2009909586),  INT32_C(   916184932),  INT32_C(  1189513910),  INT32_C(   704128497),
        -INT32_C(   792156306), -INT32_C(  1189660862), -INT32_C(   698145485),  INT32_C(  1579473931),  INT32_C(   181792933), -INT32_C(  2059374129), -INT32_C(   322164741), -INT32_C(  1172978612) },
      {  INT32_C(   453554408),  INT32_C(   880684863),              INT32_MIN,  INT32_C(  1603616132), -INT32_C(   111096594), -INT32_C(   874080201),  INT32_C(   296338101), -INT32_C(  1200561969),
        -INT32_C(   825001841), -INT32_C(  1962782552), -INT32_C(  1661992424),  INT32_C(   771588926),              INT32_MAX, -INT32_C(  1454109452), -INT32_C(  1648689459),              INT32_MIN } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i a = simde_mm512_loadu_epi32(test_vec[i].a);
    simde__m512i b = simde_mm512_loadu_epi32(test_vec[i].b);
    simde__m512i r = simde_x_mm512_adds_epi32(a, b);
    simde_test_x86_assert_equal_i32x16(r, simde_mm512_loadu_epi32(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512i a = simde_test_x86_random_i32x16();
    simde__m512i b = simde_test_x86_random_i32x16();
    simde__m512i r = simde_x_mm512_adds_epi32(a, b);

    simde_test_x86_write_i32x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_i32x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

SIMDE_TEST_FUNC_LIST_BEGIN
  SIMDE_TEST_FUNC_LIST_ENTRY(mm_mask_adds_epi8)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm_maskz_adds_epi8)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm_mask_adds_epi16)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm_maskz_adds_epi16)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm256_mask_adds_epi8)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm256_maskz_adds_epi8)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm256_mask_adds_epi16)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm256_maskz_adds_epi16)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_adds_epi8)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_adds_epi8)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_adds_epi8)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_adds_epi16)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_adds_epi16)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_adds_epi16)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_adds_epu8)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_adds_epu8)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_adds_epu8)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_adds_epu16)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_adds_epu16)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_adds_epu16)
  SIMDE_TEST_FUNC_LIST_ENTRY(x_mm_adds_epi32)
  SIMDE_TEST_FUNC_LIST_ENTRY(x_mm256_adds_epi32)
  SIMDE_TEST_FUNC_LIST_ENTRY(x_mm512_adds_epi32)
SIMDE_TEST_FUNC_LIST_END

#include <test/x86/avx512/test-avx512-footer.h>
